Я использую редактор tinymce для вставки содержимого в mysql.Я изменил плагин редактора галерей WordPress в соответствии с моей системой.
Если в контенте есть код галереи.Я преобразую этот код в символическую фотографию, чтобы пользователь понял, что вместо кода есть галерея.Как и в случае с WordPress.
Если в контенте только 1 галерея, я успешно конвертирую этот код в изображение, но если существует более 1 галереи, это не получается.
Как я могу конвертировать все {код gallery} в символическое изображение перед сохранением в db и преобразование этих фотографий обратно в код {gallery} при вставке или обновлении в mysql.
Я так плохо разбираюсь в регулярных выражениях.Я думаю, что do_gallery RegExp имеет ошибку.Как мне изменить это.
инициализирующий редактор, такой как:
ed.onBeforeSetContent.add(function(ed, o) {
ed.dom.loadCSS(url + "/css/gallery.css");
o.content = t._do_gallery(o.content);
});
ed.onPostProcess.add(function(ed, o) {
if (o.get)
o.content = t._get_gallery(o.content);
});
Мои коды "делай и получай галерею":
_do_gallery : function(co) {
return co.replace(/\{gallery([^\]]*)\}/g, function(a,b){
var image = '<img src="gallery.gif" class="wpGallery mceItem" title="gallery'+tinymce.DOM.encode(b)+'" />';
console.log(image);
return image;
});
},
_get_gallery : function(co) {
function getAttr(s, n) {
n = new RegExp(n + '="([^"]+)"', 'g').exec(s);
return n ? tinymce.DOM.decode(n[1]) : '';
};
return co.replace(/(?:<p{^>}*>)*(<img[^>]+>)(?:<\/p>)*/g, function(a,im) {
var cls = getAttr(im, 'class');
if ( cls.indexOf('wpGallery') != -1 )
return '<p>{'+tinymce.trim(getAttr(im, 'title'))+'}</p>';
return a;
});
}
Если содержимое:
<p>Blah</p>
<p>{gallery Name="gallery1" id="82" galeryID="15" sizeId="6" galery_type="list"}</p>
<p>test</p>
все в порядке
<img src="gallery.gif" class="wpGallery mceItem" title="gallery Name="tekne1" id="82" galeryID="15" sizeId="6" galery_type="liste"" />
Но, если содержимое:
<p>Blah</p>
<p>{gallery Name="gallery1" id="82" galeryID="15" sizeId="6" galery_type="list"}</p>
<p>test</p>
<p>{gallery Name="gallery2" id="88" galeryID="11" sizeId="1" galery_type="slide"}</p>
<p>test2</p>
регистрируется
<img src="gallery.gif" class="wpGallery mceItem" title="gallery Name="gallery1" id="82" galeryID="15" sizeId="6" galery_type="list"}</p> <p>test</p> <p>{gallery Name="gallery2" id="88" galeryID="11" sizeId="1" galery_type="slide"" />
Я надеюсь, что смогуобъясните мою проблему Спасибо.