Changeset 328:134b65a90d17 for admin
- Timestamp:
- 06/03/11 11:09:02 (14 years ago)
- Branch:
- wysiwyg
- Location:
- admin
- Files:
-
- 3 deleted
- 4 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
admin/js/tiny_mce/plugins/dcControls/editor_plugin.js
r327 r328 1 1 (function() { 2 tinymce.create('tinymce.plugins.dcControls', 2 tinymce.create('tinymce.plugins.dcControls',{ 3 3 // Init. 4 init 4 init: function(ed, url) { 5 5 var t = this; 6 6 var popup_link_url = 'popup_link.php'; 7 var popup_post_url = 'popup_posts.php';8 7 var popup_media_url = 'media.php?popup=1'; 9 8 … … 17 16 ed.formatter.toggle('quote'); 18 17 }); 19 ed.addCommand('dc ExternalLink', function() {18 ed.addCommand('dcLink', function() { 20 19 var se = ed.selection; 21 20 … … 27 26 var node = se.getNode(); 28 27 29 if (node.nodeName 28 if (node.nodeName == 'A') { 30 29 var href= node.href || ''; 31 30 var title = node.title || ''; … … 35 34 ed.windowManager.open({ 36 35 file: url, 37 width: 520, 38 height: 420, 36 width: 760, 37 height: 500, 38 inline: 1, 39 popup_css : false, 39 40 dc_popup: '', 40 41 alwaysRaised: 'yes', … … 49 50 }); 50 51 }); 51 ed.addCommand('dcPostLink', function() { 52 var se = ed.selection; 53 54 // No selection and not in link 55 if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A')) 56 return; 57 58 var url = popup_post_url + '?q=' + se.getContent(); 59 60 ed.windowManager.open({ 61 file: url, 62 width: 760, 63 height: 500, 64 dc_popup: '', 65 alwaysRaised: 'yes', 66 dependent: 'yes', 67 toolbar: 'yes', 68 menubar: 'no', 69 resizable: 'yes', 70 scrollbars: 'yes', 71 status: 'no' 72 }, { 73 plugin_url : url 74 }); 75 }); 76 ed.addCommand('dcMediaLink', function() { 52 ed.addCommand('dcMedia', function() { 77 53 ed.windowManager.open({ 78 54 file: popup_media_url, 79 55 width: 760, 80 56 height: 500, 57 inline: 1, 58 popup_css : false, 81 59 dc_popup: '', 82 60 alwaysRaised: 'yes', … … 105 83 ed.addButton('link', { 106 84 title: 'dcControls.link_desc', 107 cmd: 'dc ExternalLink'85 cmd: 'dcLink' 108 86 }); 109 ed.addButton('postlink', { 110 title: 'dcControls.postlink_desc', 111 cmd: 'dcPostLink', 112 image: url + '/img/postlink.png' 113 }); 114 ed.addButton('medialink', { 115 title: 'dcControls.medialink_desc', 116 cmd: 'dcMediaLink', 117 image: url + '/img/medialink.png' 87 ed.addButton('media', { 88 title: 'dcControls.media_desc', 89 cmd: 'dcMedia', 90 image: url + '/img/media.png' 118 91 }); 119 92 120 93 // Register shortcuts 121 ed.addShortcut('ctrl+alt+c', 'dcControls.inlinecode_desc', 'dcCode'); 122 ed.addShortcut('ctrl+alt+q', 'dcControls.quote_desc', 'dcQuote'); 123 ed.addShortcut('ctrl+alt+l', 'dcControls.link_desc', 'dcExternalLink'); 124 ed.addShortcut('ctrl+alt+p', 'dcControls.postlink_desc', 'dcPostLink'); 125 ed.addShortcut('ctrl+alt+m', 'dcControls.medialink_desc', 'dcMediaLink'); 94 ed.addShortcut('alt+shift+c', 'dcControls.inlinecode_desc', 'dcCode'); 95 ed.addShortcut('alt+shift+q', 'dcControls.quote_desc', 'dcQuote'); 96 ed.addShortcut('alt+shift+l', 'dcControls.link_desc', 'dcLink'); 97 ed.addShortcut('alt+shift+m', 'dcControls.media_desc', 'dcMedia'); 126 98 127 99 // Register changes management 128 100 ed.onNodeChange.add(function(ed, cm, n, co) { 129 cm.setDisabled('postlink', co && n.nodeName != 'A'); 130 cm.setActive('inlinecode', n.nodeName == 'CODE' || ed.dom.getParent(n, 'CODE')); 131 cm.setActive('quote', n.nodeName == 'Q' || ed.dom.getParent(n, 'Q')); 132 cm.setActive('postlink', n.nodeName == 'A' && n.href.indexOf(ed.settings.post_url_pattern) != -1); 101 cm.setActive('inlinecode', n.nodeName == 'CODE' || ed.dom.getParent(n,'CODE')); 102 cm.setActive('quote', n.nodeName == 'Q' || ed.dom.getParent(n,'Q')); 133 103 }); 134 104 }, 135 105 136 getInfo 106 getInfo: function() { 137 107 return { 138 longname 139 author 140 authorurl 141 infourl 142 version 108 longname: 'Dotclear custom controls', 109 author: 'Tomtom for dotclear', 110 authorurl: 'http://dotclear.org', 111 infourl: '', 112 version: tinymce.majorVersion + "." + tinymce.minorVersion 143 113 }; 144 114 } … … 146 116 147 117 // Register plugin 148 tinymce.PluginManager.add('dcControls', 118 tinymce.PluginManager.add('dcControls',tinymce.plugins.dcControls); 149 119 })(); -
admin/js/tiny_mce/plugins/dcControls/js/popup_link.js
r326 r328 1 $(function() { 2 $('#link-insert-ok').click(function(){ 3 var ed = window.opener.tinymce.activeEditor; 4 var node = ed.selection.getNode(); 5 var formatter = ed.activeFormatter; 6 var href = $('#href').val(); 7 var title = $('#title').val(); 8 var hreflang = $('#hreflang').val(); 1 tinyMCEPopup.requireLangPack(); 2 3 var popup_link = { 4 init: function() { 5 $('#div-entries h4').toggleWithLegend($('#div-entries').children().not('h4'),{ 6 cookie: 'dcx_div_entries' 7 }); 9 8 10 // href attribue is mandatory 11 if (href == '') { 12 $('#href').focus(); 13 $('#href').backgroundFade({sColor:'#ffffff',eColor:'#ff9999',steps:50},function() { 14 $(this).backgroundFade({sColor:'#ff9999',eColor:'#ffffff'}); 15 }); 9 $('#form-entries tr>td.maximal>a').click(function() { 10 $('#href').val($(this).attr('title')); 11 $('#title').val($(this).html()); 16 12 return false; 17 } 13 }); 18 14 19 node = ed.dom.getParent(node, 'A'); 15 $('#link-insert-ok').click(function(){ 16 var ed = tinyMCEPopup.editor; 17 var formatter = ed.getParam('formatter'); 18 var node = ed.selection.getNode(); 19 var href = $('#href').val(); 20 var title = $('#title').val(); 21 var hreflang = $('#hreflang').val(); 22 23 // href attribue is mandatory 24 if (href == '') { 25 $('#href').focus(); 26 $('#href').backgroundFade({sColor:'#ffffff',eColor:'#ff9999',steps:50},function() { 27 $(this).backgroundFade({sColor:'#ff9999',eColor:'#ffffff'}); 28 }); 29 return false; 30 } 31 32 node = ed.dom.getParent(node, 'A'); 33 34 // Insert link 35 if (node == null) { 36 ed.getDoc().execCommand("unlink", false, null); 37 tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); 20 38 21 // Create link 22 if (node == null) { 23 var link = ''; 24 if (formatter == 'xhtml') { 25 link += '<a href="' + href + '"'; 26 if (title != '') { 27 link += ' title="' + title + '"'; 28 } 29 if (hreflang != '') { 30 link += ' hreflang="' + hreflang + '"'; 31 } 32 link += '>{$selection}</a>'; 33 } 34 if (formatter == 'wiki') { 35 link += '[{$selection}|' + href; 36 if (hreflang != '') { 37 link += '|' + hreflang; 38 } 39 if (title != '') { 40 link += '|' + title; 41 } 42 link += ']'; 43 } 44 ed.execCommand('mceReplaceContent',false,link,{skip_undo : 1}); 45 } 46 // Update link 47 else { 48 if (formatter == 'xhtml') { 49 node.href = href; 50 if (title != '') { 51 node.title = title; 52 } 53 if (hreflang != '') { 54 node.hreflang = hreflang; 39 elementArray = tinymce.grep(ed.dom.select("a"),function(n) {return ed.dom.getAttrib(n,'href') == '#mce_temp_url#';}); 40 for (i=0; i<elementArray.length; i++) { 41 node = elementArray[i]; 42 ed.dom.setAttrib(node,'href',href); 43 ed.dom.setAttrib(node,'title',title); 44 ed.dom.setAttrib(node,'hreflang',hreflang); 55 45 } 56 46 } 57 } 47 // Update link 48 else { 49 ed.dom.setAttrib(node,'href',href); 50 ed.dom.setAttrib(node,'title',title); 51 ed.dom.setAttrib(node,'hreflang',hreflang); 52 } 53 54 // Don't move caret if selection was image 55 if (node.childNodes.length != 1 || node.firstChild.nodeName != 'IMG') { 56 ed.focus(); 57 ed.selection.select(node); 58 ed.selection.collapse(0); 59 tinyMCEPopup.storeSelection(); 60 } 58 61 59 ed.execCommand("mceEndUndoLevel"); 60 ed.windowManager.close(window); 61 }); 62 63 $('#link-insert-cancel').click(function(){ 64 window.opener.tinymce.activeEditor.windowManager.close(window); 65 }); 66 }); 62 tinyMCEPopup.execCommand("mceEndUndoLevel"); 63 tinyMCEPopup.close(); 64 }); 65 66 $('#link-insert-cancel').click(function(){ 67 tinyMCEPopup.close(); 68 }); 69 } 70 }; 71 72 tinyMCEPopup.onInit.add(popup_link.init, popup_link); -
admin/js/tiny_mce/plugins/dcControls/js/popup_media.js
r326 r328 1 $(function() { 2 $('#media-insert').onetabload(function() { 3 $('#media-insert-ok').click(function() { 4 var ed = window.opener.tinymce.activeEditor; 5 var node = ed.selection.getNode(); 6 var formatter = ed.activeFormatter; 7 var type = $('input[name=type]').val(); 8 var title = $('input[name=title]').val(); 9 var description = $('input[name=description]').val(); 10 var url = $('input[name=url]').val(); 1 tinyMCEPopup.requireLangPack(); 2 3 var popup_media = { 4 init: function() { 5 $('#media-insert').onetabload(function() { 6 $('#media-insert-ok').click(function() { 7 // Internal vars 8 var ed = tinyMCEPopup.editor; 9 var formatter = ed.getParam('formatter'); 10 var node = ed.selection.getNode(); 11 var media_align_grid = { 12 left: 'float: left; margin: 0 1em 1em 0;', 13 right: 'float: right; margin: 0 0 1em 1em;', 14 center: 'text-align: center;' 15 }; 16 // Form vars 17 var url = $('input[name=url]').val(); 18 var src = $('input[name=src]:checked').val(); 19 var type = $('input[name=type]').val(); 20 var title = $('input[name=title]').val(); 21 var description = $('input[name=description]').val(); 22 var alignment = $('input[name=alignment]:checked').val(); 23 var insertion = $('input[name=insertion]:checked').val(); 24 25 if (type == 'image') { 26 var opts_img = {src: src}; 27 if (alignment != 'none') { 28 opts_img.style = media_align_grid[alignment]; 29 } 30 if (description != '' || title != '') { 31 opts_img.alt = (description || title).replace('&','&').replace('>','>').replace('<','<').replace('"','"'); 32 } 33 if (title != '') { 34 opts_img.title = title.replace('&','&').replace('>','>').replace('<','<').replace('"','"'); 35 } 36 37 var opts_a = {href: url}; 38 if (opts_img.hasOwnProperty('alt')) { 39 opts_a.title = opts_img.alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"'); 40 } 41 42 var res = null; 43 var img = ed.dom.create('img',opts_img); 44 var a = ed.dom.create('a',opts_a); 45 46 if (insertion == 'link') { 47 res = ed.dom.add(a,img); 48 } 49 else { 50 res = img; 51 } 52 ed.execCommand('mceReplaceContent',false,ed.dom.getOuterHTML(res),{skip_undo : 1}); 53 } 54 else if (type == 'mp3') { 55 56 } 57 else if (type == 'flv') { 58 59 } 60 else { 61 62 } 63 64 tinyMCEPopup.close(); 65 }); 11 66 12 //window.opener.tinymce.activeEditor.windowManager.close(window); 67 $('#media-insert-cancel').click(function() { 68 tinyMCEPopup.close(); 69 }); 13 70 }); 14 71 15 $('#media-insert-cancel').click(function() { 16 window.opener.tinymce.activeEditor.windowManager.close(window); 17 }); 18 }); 19 20 function sendClose() { 21 var insert_form = $('#media-insert-form').get(0); 22 if (insert_form == undefined) { return; } 23 24 var tb = window.opener.the_toolbar; 25 var type = insert_form.elements.type.value; 26 27 var media_align_grid = { 28 left: 'float: left; margin: 0 1em 1em 0;', 29 right: 'float: right; margin: 0 0 1em 1em;', 30 center: 'text-align: center;' 72 function sendClose() { 73 var insert_form = $('#media-insert-form').get(0); 74 if (insert_form == undefined) { return; } 75 76 var tb = window.opener.the_toolbar; 77 var type = insert_form.elements.type.value; 78 79 var media_align_grid = { 80 left: 'float: left; margin: 0 1em 1em 0;', 81 right: 'float: right; margin: 0 0 1em 1em;', 82 center: 'text-align: center;' 83 }; 84 85 if (type == 'image') 86 { 87 tb.elements.img_select.data.src = tb.stripBaseURL($('input[name="src"]:checked',insert_form).val()); 88 tb.elements.img_select.data.alignment = $('input[name="alignment"]:checked',insert_form).val(); 89 tb.elements.img_select.data.link = $('input[name="insertion"]:checked',insert_form).val() == 'link'; 90 91 tb.elements.img_select.data.title = insert_form.elements.title.value; 92 tb.elements.img_select.data.description = $('input[name="description"]',insert_form).val(); 93 tb.elements.img_select.data.url = tb.stripBaseURL(insert_form.elements.url.value); 94 tb.elements.img_select.fncall[tb.mode].call(tb); 95 } 96 else if (type == 'mp3') 97 { 98 var player = $('#public_player').val(); 99 var align = $('input[name="alignment"]:checked',insert_form).val(); 100 101 if (align != undefined && align != 'none') { 102 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 103 } 104 105 tb.elements.mp3_insert.data.player = player.replace(/>/g,'>\n'); 106 tb.elements.mp3_insert.fncall[tb.mode].call(tb); 107 } 108 else if (type == 'flv') 109 { 110 var oplayer = $('<div>'+$('#public_player').val()+'</div>'); 111 var flashvars = $("[name=FlashVars]",oplayer).val(); 112 113 var align = $('input[name="alignment"]:checked',insert_form).val(); 114 var title = insert_form.elements.title.value; 115 116 if (title) { 117 flashvars = 'title='+encodeURI(title)+'&'+flashvars; 118 } 119 $('object',oplayer).attr('width',$('#video_w').val()); 120 $('object',oplayer).attr('height',$('#video_h').val()); 121 flashvars = flashvars.replace(/(width=\d*)/,'width='+$('#video_w').val()); 122 flashvars = flashvars.replace(/(height=\d*)/,'height='+$('#video_h').val()); 123 124 $("[name=FlashVars]",oplayer).val(flashvars); 125 var player = oplayer.html(); 126 127 if (align != undefined && align != 'none') { 128 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 129 } 130 131 tb.elements.flv_insert.data.player = player.replace(/>/g,'>\n'); 132 tb.elements.flv_insert.fncall[tb.mode].call(tb); 133 } 134 else 135 { 136 tb.elements.link.data.href = tb.stripBaseURL(insert_form.elements.url.value); 137 tb.elements.link.data.content = insert_form.elements.title.value; 138 tb.elements.link.fncall[tb.mode].call(tb); 139 } 31 140 }; 32 141 33 if (type == 'image') 34 { 35 tb.elements.img_select.data.src = tb.stripBaseURL($('input[name="src"]:checked',insert_form).val()); 36 tb.elements.img_select.data.alignment = $('input[name="alignment"]:checked',insert_form).val(); 37 tb.elements.img_select.data.link = $('input[name="insertion"]:checked',insert_form).val() == 'link'; 142 function playerFormat(s) { 143 s = s.replace(/</g,'<'); 144 s = s.replace(/>/g,'>\n'); 145 s = s.replace(/&/g,'&'); 38 146 39 tb.elements.img_select.data.title = insert_form.elements.title.value; 40 tb.elements.img_select.data.description = $('input[name="description"]',insert_form).val(); 41 tb.elements.img_select.data.url = tb.stripBaseURL(insert_form.elements.url.value); 42 tb.elements.img_select.fncall[tb.mode].call(tb); 43 } 44 else if (type == 'mp3') 45 { 46 var player = $('#public_player').val(); 47 var align = $('input[name="alignment"]:checked',insert_form).val(); 147 return s; 148 }; 149 150 /*var alt = (str) ? str : d.title; 151 var res = '<img src="'+d.src+'" alt="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 48 152 49 if (align != undefined && align != 'none') { 50 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 153 if (d.alignment == 'left') { 154 res += ' style="float: left; margin: 0 1em 1em 0;"'; 155 } else if (d.alignment == 'right') { 156 res += ' style="float: right; margin: 0 0 1em 1em;"'; 157 } else if (d.alignment == 'center') { 158 res += ' style="margin: 0 auto; display: block;"'; 51 159 } 52 160 53 tb.elements.mp3_insert.data.player = player.replace(/>/g,'>\n'); 54 tb.elements.mp3_insert.fncall[tb.mode].call(tb); 55 } 56 else if (type == 'flv') 57 { 58 var oplayer = $('<div>'+$('#public_player').val()+'</div>'); 59 var flashvars = $("[name=FlashVars]",oplayer).val(); 60 61 var align = $('input[name="alignment"]:checked',insert_form).val(); 62 var title = insert_form.elements.title.value; 63 64 if (title) { 65 flashvars = 'title='+encodeURI(title)+'&'+flashvars; 66 } 67 $('object',oplayer).attr('width',$('#video_w').val()); 68 $('object',oplayer).attr('height',$('#video_h').val()); 69 flashvars = flashvars.replace(/(width=\d*)/,'width='+$('#video_w').val()); 70 flashvars = flashvars.replace(/(height=\d*)/,'height='+$('#video_h').val()); 71 72 $("[name=FlashVars]",oplayer).val(flashvars); 73 var player = oplayer.html(); 74 75 if (align != undefined && align != 'none') { 76 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 161 if (d.description) { 162 res += ' title="'+d.description.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 77 163 } 78 164 79 tb.elements.flv_insert.data.player = player.replace(/>/g,'>\n'); 80 tb.elements.flv_insert.fncall[tb.mode].call(tb); 81 } 82 else 83 { 84 tb.elements.link.data.href = tb.stripBaseURL(insert_form.elements.url.value); 85 tb.elements.link.data.content = insert_form.elements.title.value; 86 tb.elements.link.fncall[tb.mode].call(tb); 87 } 88 }; 89 90 function playerFormat(s) { 91 s = s.replace(/</g,'<'); 92 s = s.replace(/>/g,'>\n'); 93 s = s.replace(/&/g,'&'); 94 95 return s; 96 }; 97 98 /*var alt = (str) ? str : d.title; 99 var res = '<img src="'+d.src+'" alt="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 100 101 if (d.alignment == 'left') { 102 res += ' style="float: left; margin: 0 1em 1em 0;"'; 103 } else if (d.alignment == 'right') { 104 res += ' style="float: right; margin: 0 0 1em 1em;"'; 105 } else if (d.alignment == 'center') { 106 res += ' style="margin: 0 auto; display: block;"'; 107 } 108 109 if (d.description) { 110 res += ' title="'+d.description.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 111 } 112 113 res += ' />'; 114 115 if (d.link) { 116 var ltitle = (alt) ? ' title="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"' : ''; 117 res = '<a href="'+d.url+'"'+ltitle+'>'+res+'</a>'; 118 } 119 120 return res;*/ 121 }); 165 res += ' />'; 166 167 if (d.link) { 168 var ltitle = (alt) ? ' title="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"' : ''; 169 res = '<a href="'+d.url+'"'+ltitle+'>'+res+'</a>'; 170 } 171 172 return res;*/ 173 } 174 }; 175 176 tinyMCEPopup.onInit.add(popup_media.init, popup_media); -
admin/popup_link.php
r326 r328 15 15 dcPage::check('usage,contentadmin'); 16 16 17 $href = !empty($_GET['href']) ? $_GET['href'] : ''; 18 $hreflang = !empty($_GET['hreflang']) ? $_GET['hreflang'] : ''; 19 $title = !empty($_GET['title']) ? $_GET['title'] : ''; 17 $href = !empty($_GET['href']) ? $_GET['href'] : ''; 18 $hreflang = !empty($_GET['hreflang']) ? $_GET['hreflang'] : ''; 19 $title = !empty($_GET['title']) ? $_GET['title'] : ''; 20 $q = !empty($_GET['q']) ? $_GET['q'] : null; 21 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 22 $nb_per_page = 10; 20 23 21 dcPage::openPopup(__('Add a link'),dcPage::jsLoad('js/tiny_mce/plugins/dcControls/js/popup_link.js')); 24 $params = array(); 25 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 26 $params['no_content'] = true; 27 $params['order'] = 'post_dt DESC'; 28 29 if ($q) { 30 $params['search'] = $q; 31 } 32 33 dcPage::openPopup(__('Add a link'), 34 dcPage::jsLoad('js/_posts_list.js'). 35 dcPage::jsLoad('js/tiny_mce/tiny_mce_popup.js'). 36 dcPage::jsLoad('js/tiny_mce/plugins/dcControls/js/popup_link.js') 37 ); 22 38 23 39 echo '<h2>'.__('Add a link').'</h2>'; … … 40 56 echo 41 57 '<form id="link-insert-form" action="#" method="get">'. 58 '<h4>'.__('Enter a destination URL').'</h4>'. 42 59 '<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Link URL:').' '. 43 60 form::field('href',35,512,html::escapeHTML($href)).'</label></p>'. … … 47 64 form::combo('hreflang',$lang_combo,$hreflang). 48 65 '</label></p>'. 49 50 '</form>'.51 52 66 '<p><a class="button reset" href="#" id="link-insert-cancel">'.__('cancel').'</a> - '. 53 67 '<strong><a class="button" href="#" id="link-insert-ok">'.__('insert').'</a></strong></p>'."\n". 68 69 '<div id="div-entries">'. 70 '<h4>'.__('Or link to existing content').'</h4>'. 71 '<p class="form-note">'.__('Click on a title to select the link').'</p>'. 72 '<p><label for="q" class="classic">'.__('Search entry:').' '.form::field('q',30,255,html::escapeHTML($q)).'</label> '. 73 ' <input type="submit" value="'.__('ok').'" /></p>'; 74 75 try { 76 $posts = $core->blog->getPosts($params); 77 $counter = $core->blog->getPosts($params,true); 78 $post_list = new adminPostMiniList($core,$posts,$counter->f(0)); 79 } catch (Exception $e) { 80 $core->error->add($e->getMessage()); 81 } 82 83 echo '<div id="form-entries">'; # I know it's not a form but we just need the ID 84 $post_list->display($page,$nb_per_page); 85 echo 86 '</div>'. 87 '</div>'. 88 '</form>'. 54 89 55 90 '<script type="text/javascript">'."\n". … … 60 95 61 96 dcPage::closePopup(); 97 62 98 ?>
Note: See TracChangeset
for help on using the changeset viewer.