Posted 13 декабря, 201311 yr comment_48878 Приветствую! Наткнулся недавно на новый CKEditor интегрированный в IPB, с многими вкусностями которых нет в стандартном форуме. Хоть в IPB и есть CKEditor, но он какой-то глючный (кривая вставка с буфера, вв коды раз через раз проходят...). Предлагаю обсудить тут, возможность интеграции CKEditor (v.4.3.1) в IPBoard Для сравнения: файлы: Новый ckeditor |---build-config.js |---CHANGES.md |---ckeditor.js |---config.js |---contents.css |---LICENSE.md |---README.md |---styles.js |---adapters | `---jquery.js |---lang | |---af.js | |---ar.js | |---bg.js | |---bn.js | |---bs.js | |---ca.js | |---cs.js | |---cy.js | |---da.js | |---de.js | |---el.js | |---en-au.js | |---en-ca.js | |---en-gb.js | |---en.js | |---eo.js | |---es.js | |---et.js | |---eu.js | |---fa.js | |---fi.js | |---fo.js | |---fr-ca.js | |---fr.js | |---gl.js | |---gu.js | |---he.js | |---hi.js | |---hr.js | |---hu.js | |---id.js | |---is.js | |---it.js | |---ja.js | |---ka.js | |---km.js | |---ko.js | |---ku.js | |---lt.js | |---lv.js | |---mk.js | |---mn.js | |---ms.js | |---nb.js | |---nl.js | |---no.js | |---pl.js | |---pt-br.js | |---pt.js | |---ro.js | |---ru.js | |---si.js | |---sk.js | |---sl.js | |---sq.js | |---sr-latn.js | |---sr.js | |---sv.js | |---th.js | |---tr.js | |---ug.js | |---uk.js | |---vi.js | |---zh-cn.js | `---zh.js |---plugins | |---icons.png | |---icons_hidpi.png | |---a11yhelp | | `---dialogs | | |---a11yhelp.js | | `---lang | | |---ar.js | | |---bg.js | | |---ca.js | | |---cs.js | | |---cy.js | | |---da.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---es.js | | |---et.js | | |---fa.js | | |---fi.js | | |---fr-ca.js | | |---fr.js | | |---gl.js | | |---gu.js | | |---he.js | | |---hi.js | | |---hr.js | | |---hu.js | | |---id.js | | |---it.js | | |---ja.js | | |---km.js | | |---ko.js | | |---ku.js | | |---lt.js | | |---lv.js | | |---mk.js | | |---mn.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pl.js | | |---pt-br.js | | |---pt.js | | |---ro.js | | |---ru.js | | |---si.js | | |---sk.js | | |---sl.js | | |---sq.js | | |---sr-latn.js | | |---sr.js | | |---sv.js | | |---th.js | | |---tr.js | | |---ug.js | | |---uk.js | | |---vi.js | | |---zh-cn.js | | |---zh.js | | `---_translationstatus.txt | |---about | | `---dialogs | | |---about.js | | |---logo_ckeditor.png | | `---hidpi | | `---logo_ckeditor.png | |---clipboard | | `---dialogs | | `---paste.js | |---dialog | | `---dialogDefinition.js | |---fakeobjects | | `---images | | `---spacer.gif | |---image | | |---dialogs | | | `---image.js | | `---images | | `---noimage.png | |---link | | |---dialogs | | | |---anchor.js | | | `---link.js | | `---images | | |---anchor.png | | `---hidpi | | `---anchor.png | |---magicline | | `---images | | |---icon.png | | `---hidpi | | `---icon.png | |---pastefromword | | `---filter | | `---default.js | |---scayt | | |---LICENSE.md | | |---README.md | | `---dialogs | | |---options.js | | `---toolbar.css | |---specialchar | | `---dialogs | | |---specialchar.js | | `---lang | | |---ar.js | | |---bg.js | | |---ca.js | | |---cs.js | | |---cy.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---es.js | | |---et.js | | |---fa.js | | |---fi.js | | |---fr-ca.js | | |---fr.js | | |---gl.js | | |---he.js | | |---hr.js | | |---hu.js | | |---id.js | | |---it.js | | |---ja.js | | |---km.js | | |---ku.js | | |---lv.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pl.js | | |---pt-br.js | | |---pt.js | | |---ru.js | | |---si.js | | |---sk.js | | |---sl.js | | |---sq.js | | |---sv.js | | |---th.js | | |---tr.js | | |---ug.js | | |---uk.js | | |---vi.js | | |---zh-cn.js | | |---zh.js | | `---_translationstatus.txt | |---table | | `---dialogs | | `---table.js | |---tabletools | | `---dialogs | | `---tableCell.js | `---wsc | |---LICENSE.md | |---README.md | `---dialogs | |---ciframe.html | |---tmp.html | |---tmpFrameset.html | |---wsc.css | |---wsc.js | `---wsc_ie.js |---samples | |---ajax.html | |---api.html | |---appendto.html | |---datafiltering.html | |---divreplace.html | |---index.html | |---inlineall.html | |---inlinebycode.html | |---inlinetextarea.html | |---jquery.html | |---readonly.html | |---replacebyclass.html | |---replacebycode.html | |---sample.css | |---sample.js | |---sample_posteddata.php | |---tabindex.html | |---uicolor.html | |---uilanguages.html | |---xhtmlstyle.html | |---assets | | |---posteddata.php | | |---sample.css | | |---sample.jpg | | |---inlineall | | | `---logo.png | | |---outputxhtml | | | `---outputxhtml.css | | `---uilanguages | | `---languages.js | `---plugins | |---dialog | | |---dialog.html | | `---assets | | `---my_dialog.js | |---enterkey | | `---enterkey.html | |---htmlwriter | | |---outputforflash.html | | |---outputhtml.html | | `---assets | | `---outputforflash | | |---outputforflash.fla | | |---outputforflash.swf | | `---swfobject.js | |---magicline | | `---magicline.html | |---toolbar | | `---toolbar.html | `---wysiwygarea | `---fullpage.html `---skins `---moono |---dialog.css |---dialog_ie.css |---dialog_ie7.css |---dialog_ie8.css |---dialog_iequirks.css |---dialog_opera.css |---editor.css |---editor_gecko.css |---editor_ie.css |---editor_ie7.css |---editor_ie8.css |---editor_iequirks.css |---icons.png |---icons_hidpi.png |---readme.md `---images |---arrow.png |---close.png |---lock-open.png |---lock.png |---refresh.png `---hidpi |---close.png |---lock-open.png |---lock.png `---refresh.png С IPBoard 3.4.4 public/js/3rd_party/ckeditor/ |---ckeditor.js |---ckeditor_basic.js |---ckeditor_basic_source.js |---ckeditor_source.js |---config.js |---contents.css |---index.html |---ips_changed.txt |---ips_config.js |---LICENSE.html |---images | |---index.html | `---spacer.gif |---lang | |---af.js | |---ar.js | |---bg.js | |---bn.js | |---bs.js | |---ca.js | |---cs.js | |---cy.js | |---da.js | |---de.js | |---el.js | |---en-au.js | |---en-ca.js | |---en-gb.js | |---en.js | |---eo.js | |---es.js | |---et.js | |---eu.js | |---fa.js | |---fi.js | |---fo.js | |---fr-ca.js | |---fr.js | |---gl.js | |---gu.js | |---he.js | |---hi.js | |---hr.js | |---hu.js | |---index.html | |---ipb.js | |---is.js | |---it.js | |---ja.js | |---ka.js | |---km.js | |---ko.js | |---lt.js | |---lv.js | |---mn.js | |---ms.js | |---nb.js | |---nl.js | |---no.js | |---pl.js | |---pt-br.js | |---pt.js | |---ro.js | |---ru.js | |---sk.js | |---sl.js | |---sr-latn.js | |---sr.js | |---sv.js | |---th.js | |---tr.js | |---uk.js | |---vi.js | |---zh-cn.js | |---zh.js | |---_languages.js | `---_translationstatus.txt |---plugins | |---index.html | |---a11yhelp | | |---index.html | | |---dialogs | | | |---a11yhelp.js | | | `---index.html | | `---lang | | |---cs.js | | |---cy.js | | |---da.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---fa.js | | |---fi.js | | |---fr.js | | |---gu.js | | |---he.js | | |---index.html | | |---it.js | | |---ku.js | | |---lv.js | | |---mk.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pt-br.js | | |---ro.js | | |---sk.js | | |---tr.js | | |---ug.js | | |---vi.js | | |---zh-cn.js | | `---_translationstatus.txt | |---about | | |---index.html | | `---dialogs | | |---about.js | | |---index.html | | `---logo_ckeditor.png | |---adobeair | | |---index.html | | `---plugin.js | |---ajax | | |---index.html | | `---plugin.js | |---autogrow | | |---index.html | | `---plugin.js | |---bbcode | | |---index.html | | `---plugin.js | |---clipboard | | |---index.html | | `---dialogs | | |---index.html | | `---paste.js | |---colordialog | | |---index.html | | `---dialogs | | |---colordialog.js | | `---index.html | |---devtools | | |---index.html | | |---plugin.js | | `---lang | | |---bg.js | | |---cs.js | | |---cy.js | | |---da.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---et.js | | |---fa.js | | |---fi.js | | |---fr.js | | |---gu.js | | |---he.js | | |---hr.js | | |---index.html | | |---it.js | | |---ku.js | | |---lv.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pl.js | | |---pt-br.js | | |---sk.js | | |---tr.js | | |---ug.js | | |---uk.js | | |---vi.js | | |---zh-cn.js | | `---_translationstatus.txt | |---dialog | | |---dialogDefinition.js | | `---index.html | |---div | | |---index.html | | `---dialogs | | |---div.js | | `---index.html | |---docprops | | |---index.html | | |---plugin.js | | `---dialogs | | |---docprops.js | | `---index.html | |---find | | |---index.html | | `---dialogs | | |---find.js | | `---index.html | |---flash | | |---index.html | | |---dialogs | | | |---flash.js | | | `---index.html | | `---images | | |---index.html | | `---placeholder.png | |---forms | | |---index.html | | |---dialogs | | | |---button.js | | | |---checkbox.js | | | |---form.js | | | |---hiddenfield.js | | | |---index.html | | | |---radio.js | | | |---select.js | | | |---textarea.js | | | `---textfield.js | | `---images | | |---hiddenfield.gif | | `---index.html | |---iframe | | |---index.html | | |---dialogs | | | |---iframe.js | | | `---index.html | | `---images | | |---index.html | | `---placeholder.png | |---iframedialog | | |---index.html | | `---plugin.js | |---image | | |---index.html | | `---dialogs | | |---image.js | | `---index.html | |---ipsbbcode | | |---index.html | | |---dialogs | | | |---index.html | | | `---ipsbbcode.js | | `---images | | |---index.html | | `---ips_bbcode.png | |---ipscode | | |---index.html | | |---dialogs | | | |---index.html | | | `---ipscode.js | | `---images | | |---code.png | | `---index.html | |---ipsemoticon | | |---index.html | | `---images | | |---index.html | | `---ips_emoticon.png | |---ipsimage | | |---dialogs | | | `---ipsimage.js | | `---images | | `---image.gif | |---ipsmedia | | |---index.html | | `---images | | |---index.html | | `---mymedia.png | |---ipsoptions | | |---index.html | | `---images | | |---index.html | | `---ips_options.png | |---ipsquote | | |---index.html | | `---images | | |---index.html | | `---quote.png | |---ipssourcearea | | `---images | | `---switch.png | |---ipsswitch | | |---index.html | | `---images | | |---index.html | | `---switch.png | |---link | | |---index.html | | |---dialogs | | | |---anchor.js | | | |---index.html | | | `---link.js | | `---images | | |---anchor.gif | | `---index.html | |---liststyle | | |---index.html | | `---dialogs | | |---index.html | | `---liststyle.js | |---pagebreak | | |---index.html | | `---images | | |---index.html | | `---pagebreak.gif | |---pastefromword | | |---index.html | | `---filter | | |---default.js | | `---index.html | |---pastetext | | |---index.html | | `---dialogs | | |---index.html | | `---pastetext.js | |---placeholder | | |---index.html | | |---placeholder.gif | | |---plugin.js | | |---dialogs | | | |---index.html | | | `---placeholder.js | | `---lang | | |---bg.js | | |---cs.js | | |---cy.js | | |---da.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---et.js | | |---fa.js | | |---fi.js | | |---fr.js | | |---he.js | | |---hr.js | | |---index.html | | |---it.js | | |---ku.js | | |---lv.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pl.js | | |---pt-br.js | | |---sk.js | | |---tr.js | | |---ug.js | | |---uk.js | | |---vi.js | | |---zh-cn.js | | `---_translationstatus.txt | |---preview | | `---preview.html | |---scayt | | |---index.html | | `---dialogs | | |---index.html | | |---options.js | | `---toolbar.css | |---showblocks | | |---index.html | | `---images | | |---block_address.png | | |---block_blockquote.png | | |---block_div.png | | |---block_h1.png | | |---block_h2.png | | |---block_h3.png | | |---block_h4.png | | |---block_h5.png | | |---block_h6.png | | |---block_p.png | | |---block_pre.png | | `---index.html | |---smiley | | |---index.html | | |---dialogs | | | |---index.html | | | `---smiley.js | | `---images | | |---angel_smile.gif | | |---angry_smile.gif | | |---broken_heart.gif | | |---confused_smile.gif | | |---cry_smile.gif | | |---devil_smile.gif | | |---embaressed_smile.gif | | |---envelope.gif | | |---heart.gif | | |---index.html | | |---kiss.gif | | |---lightbulb.gif | | |---omg_smile.gif | | |---regular_smile.gif | | |---sad_smile.gif | | |---shades_smile.gif | | |---teeth_smile.gif | | |---thumbs_down.gif | | |---thumbs_up.gif | | |---tounge_smile.gif | | |---whatchutalkingabout_smile.gif | | `---wink_smile.gif | |---specialchar | | |---index.html | | |---dialogs | | | |---index.html | | | `---specialchar.js | | `---lang | | |---cs.js | | |---cy.js | | |---de.js | | |---el.js | | |---en.js | | |---eo.js | | |---et.js | | |---fa.js | | |---fi.js | | |---fr.js | | |---he.js | | |---hr.js | | |---index.html | | |---it.js | | |---ku.js | | |---lv.js | | |---nb.js | | |---nl.js | | |---no.js | | |---pt-br.js | | |---sk.js | | |---tr.js | | |---ug.js | | |---zh-cn.js | | `---_translationstatus.txt | |---styles | | |---index.html | | `---styles | | |---default.js | | `---index.html | |---stylesheetparser | | |---index.html | | `---plugin.js | |---table | | |---index.html | | `---dialogs | | |---index.html | | `---table.js | |---tableresize | | |---index.html | | `---plugin.js | |---tabletools | | |---index.html | | `---dialogs | | |---index.html | | `---tableCell.js | |---templates | | |---index.html | | |---dialogs | | | |---index.html | | | `---templates.js | | `---templates | | |---default.js | | |---index.html | | `---images | | |---index.html | | |---template1.gif | | |---template2.gif | | `---template3.gif | |---uicolor | | |---index.html | | |---plugin.js | | |---uicolor.gif | | |---dialogs | | | |---index.html | | | `---uicolor.js | | |---lang | | | |---bg.js | | | |---cs.js | | | |---cy.js | | | |---da.js | | | |---de.js | | | |---el.js | | | |---en.js | | | |---eo.js | | | |---et.js | | | |---fa.js | | | |---fi.js | | | |---fr.js | | | |---he.js | | | |---hr.js | | | |---index.html | | | |---it.js | | | |---ku.js | | | |---lv.js | | | |---mk.js | | | |---nb.js | | | |---nl.js | | | |---no.js | | | |---pl.js | | | |---pt-br.js | | | |---sk.js | | | |---tr.js | | | |---ug.js | | | |---uk.js | | | |---vi.js | | | |---zh-cn.js | | | `---_translationstatus.txt | | `---yui | | |---index.html | | |---yui.js | | `---assets | | |---hue_bg.png | | |---hue_thumb.png | | |---index.html | | |---picker_mask.png | | |---picker_thumb.png | | `---yui.css | |---wsc | | |---index.html | | `---dialogs | | |---ciframe.html | | |---index.html | | |---tmpFrameset.html | | |---wsc.css | | `---wsc.js | `---xml | |---index.html | `---plugin.js |---skins | |---index.html | `---ips | |---dialog.css | |---editor.css | |---elementspath.css | |---icons.css | |---icons.png | |---icons_rtl.png | |---index.html | |---mainui.css | |---menu.css | |---panel.css | |---presets.css | |---reset.css | |---richcombo.css | |---skin.js | |---templates.css | |---toolbar.css | `---images | |---dialog_sides.gif | |---dialog_sides.png | |---dialog_sides_rtl.png | |---index.html | |---ips_bbcode.png | |---mini.gif | |---noimage.png | |---sprites.png | |---sprites2.png | |---sprites3.png | |---sprites_ie6.png | `---toolbar_start.gif `---themes |---index.html `---default |---index.html `---theme.js Код: ajaxEditBox <if test="jsNotLoaded:|:$extraData['_loadJs']"> {parse template="editorLoadJs" group="editors" params="$extraData['smilies']"} </if> <if test="ajaxerror:|:$error_msg"> <p id='error_msg_e{$pid}' class='message error'>{$error_msg}</p> <else /> <p id='error_msg_e{$pid}' class='message error' style='display: none'>{$error_msg}</p> </if> <input type='hidden' name='editor_ids[]' value='e{$pid}' /> <div class='ipsBox clearfix'> <div class='ipsBox_container'> <div class='ips_editor' id='editor_e{$pid}'> <if test="forceStd:|:$extraData['isHtml']"> {parse editor="Post" content="$post" options="array( 'editorName' => 'edit-' . $pid, 'type' => 'full', 'minimize' => 0, 'isHtml' => 1, 'legacyMode' => 'off' )"} <else /> {parse editor="Post" content="$post" options="array( 'editorName' => 'edit-' . $pid, 'type' => 'full', 'minimize' => 0, 'legacyMode' => 'off' )"} </if> <if test="showeditoptions:|:$extraData['showEditOptions']"> <div class='row2 ipsPad ipsText_small desc'> <if test="showreason:|:$extraData['showReason']"> {$this->lang->words['preason_for_edit']} <input type='text' size='35' maxlength='250' class='input_text' id='post_edit_reason_{$pid}' name='post_edit_reason_{$pid}' value='{$extraData['reasonForEdit']}' /> </if> <if test="showappendedit:|:$extraData['showAppendEdit']"> <input type='checkbox' name='add_edit_{$pid}' id='add_edit_{$pid}' <if test="appendedit:|:$extraData['append_edit']">checked='checked'</if> value='1' /> <label for='add_edit_{$pid}'>{$this->lang->words['show_edited_by']}</label> </if> </div> <if test="htmlstatus:|:$extraData['checkBoxes']['html'] !== null"> <div class='row2 ipsPad ipsText_small desc'> <input type="checkbox" name="post_htmlstatus" class="input_check" value="1" id='post_htmlstatus_{$pid}' {$extraData['checkBoxes']['html']} /> <label for='post_htmlstatus' data-tooltip='{$this->lang->words['pp_html_tooltip']}'>{$this->lang->words['pp_html']}</label> <script type="text/javascript"> ipb.textEditor.bindHtmlCheckbox( $('post_htmlstatus_{$pid}') ); </script> </div> </if> </if> <fieldset class='submit'> <input type='submit' value='{$this->lang->words['save_changes']}' class='input_submit' id='edit_save_e{$pid}' tabindex='25' /> <if test="! $extraData['skipFullButton']"><input type='submit' value='{$this->lang->words['use_full_editor']}' class='input_submit alt' id='edit_switch_e{$pid}' /></if> {$this->lang->words['or']} <a href='#' title='{$this->lang->words['cancel']}' class='cancel' id='edit_cancel_e{$pid}'>{$this->lang->words['cancel']}</a> </fieldset> </div> </div> </div> editor <if test="hasToAcknowledge:|:$acknowledge"> <p class='message'>{$this->lang->words['warnings_acknowledge_desc']} <a href='{parse url="app=members&module=profile&section=warnings&do=acknowledge&id={$acknowledge}" base="public"}' class='ipsButton_secondary'>{$this->lang->words['warnings_acknowledge_review']}</a></p> <else /> <if test="hasWrningInfo:|:$warningInfo"> <p class='message'>{$warningInfo}</p> <br /> </if> <if test="showEditor:|:$showEditor"> <php> /* Always return as UTF-8 */ $jsonEncoded = IPSText::jsonEncodeForTemplate( $autoSaveData ); </php> <if test="jsNotLoaded:|:empty($this->_editorJsLoaded)"> {parse template="editorLoadJs" group="editors" params="$options"} </if> <input type='hidden' rel="include" name='isRte' id='isRte_{$options['editorName']}' value='{parse expression="intval( $options['isRte'] )"}' /> <input type='hidden' rel="include" name='noSmilies' id='noSmilies_{$options['editorName']}' value='{parse expression="intval( $options['noSmilies'] )"}' /> <if test="hasContent:|:$bbcodeVersion || $options['bypassCKEditor']"> <!-- NO JS FALLBACK --> <input type='hidden' rel="include" name='noCKEditor' id='noCKEditor_{$options['editorName']}' value='1' /> <textarea id="{$options['editorName']}" name="{$formField}" class='ipsEditor_textarea input_text'>$bbcodeVersion</textarea> <textarea id="{$options['editorName']}_js" name="{$formField}_js" style='display:none' class='ipsEditor_textarea input_text<if test="ismini:|:$options['type'] == 'mini'"> mini</if>'>{$content}</textarea> <else /> <input type='hidden' name='noCKEditor_{$options['editorName']}' id='noCKEditor_{$options['editorName']}' value='0' /> <textarea id="{$options['editorName']}" name="{$formField}" class='ipsEditor_textarea input_text<if test="ismini:|:$options['type'] == 'mini'"> mini</if>'>{$content}</textarea> </if> <p class='desc ipsPad' style='display: none' id='editor_html_message_{$options['editorName']}'>{$this->lang->words['editor_html_message']}</p> <script type="text/javascript"> ipb.textEditor.initialize('{$options['editorName']}', { type: <if test="hasType:|:$options['type']">'{$options['type']}'<else />''</if>, height: <if test="hasHeight:|:$options['height'] > 0">{$options['height']}<else /><if test="ismini:|:$options['type'] == 'mini'">150<else />300</if></if>, minimize: <if test="hasMinimize:|:$options['minimize']">'{$options['minimize']}'<else />0</if>, bypassCKEditor: {parse expression="intval( $options['bypassCKEditor'] )"}, delayInit: {parse expression="intval( $options['delayInit'] )"}, isHtml: {parse expression="intval( $options['isHtml'] )"}, isRte: {parse expression="intval( $options['isRte'] )"}, noSmilies: {parse expression="intval( $options['noSmilies'] )"}, disabledTags: {IPSText::jsonEncodeForTemplate( $options['disabledTags'] )}, isTypingCallBack: <if test="hasCallback:|:$options['isTypingCallBack']">{$options['isTypingCallBack']}<else />''</if>, ips_AutoSaveKey: <if test="hasSaveKey:|:$options['autoSaveKey']">'{$options['autoSaveKey']}'<else />''</if>, ips_AutoSaveData: {$jsonEncoded} } ); </script> </if> </if> editorLoadJs {parse js_module="textEditor"} {parse js_module="textEditor.bbcode"} <php> $this->_editorJsLoaded = true; $jsonEncoded = IPSText::jsonEncodeForTemplate( isset($options['smilies']) && is_array($options['smilies']) ? $options['smilies'] : array() ); $options['bypassCKEditor'] = ( isset($options['bypassCKEditor']) ) ? $options['bypassCKEditor'] : 0; </php> <if test="bypassCkEditor:|:$options['bypassCKEditor'] != 1"> <if test="defined("CK_LOAD_SOURCE") AND CK_LOAD_SOURCE"> <!-- Load source files, not the minified version --> <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/ckeditor/ckeditor_source.js?nck={$this->settings['noCacheKey']}"></script> <else /> <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/ckeditor/ckeditor.js?nck={$this->settings['noCacheKey']}"></script> </if> <else /> <script type="text/javascript"> CKEDITOR = { config: {} }; </script> </if> <script type="text/javascript"> /* Dynamic items */ CKEDITOR.config.IPS_BBCODE = {IPSLib::fetchBbcodeAsJson( array( 'skip' => array( 'sharedmedia' ) ) )}; CKEDITOR.config.IPS_BBCODE_NOPARSE = {IPSLib::fetchBbcodeAsJson( array( 'noParseOnly' => 1 ) )}; CKEDITOR.config.IPS_BBCODE_DISABLED = {IPSText::jsonEncodeForTemplate( $options['disabledTags'] )}; CKEDITOR.config.IPS_BBCODE_IMG_URL = "{$this->settings['public_cdn_url']}style_extra/bbcode_icons"; CKEDITOR.config.IPS_BBCODE_BUTTONS = []; CKEDITOR.timestamp = "{$this->settings['noCacheKey']}"; /* Has to go before config load */ var IPS_smiley_path = "{$this->settings['emoticons_url']}/"; var IPS_smiles = <if test="hasimages:|:! empty($options['smilies']['count'])">{$jsonEncoded}<else />{}</if>; var IPS_remove_plugins = []; var IPS_extra_plugins = []; /* Load our configuration */ CKEDITOR.config.customConfig = '{$this->settings['js_base_url']}js/3rd_party/ckeditor/ips_config.js'; /* Override with prefs */ CKEDITOR.config.CmdVAsPlainText = <if test="hasPastePlain:|:$this->memberData['bw_paste_plain']">true<else />false</if>; </script> {parse expression="$this->registry->output->addToDocumentHead( 'importcss', "{$this->settings['css_base_url']}style_css/{$this->registry->output->skin['_csscacheid']}/ipb_ckeditor.css" )"} editorSettings <h3>{$this->lang->words['editor_options']}</h3> <div class='fixed_inner ipsBox row1'> <div class='ipsSettings'> <fieldset class='ipsSettings_section'> <ul class='ipsForm ipsForm_horizontal'> <li> <input type='checkbox' class='input_check' id='pastePlain' <if test="$this->memberData['bw_paste_plain']">checked="checked"</if> name="pastePlain" value="1" /> <label for='pastePlain'>{$this->lang->words['editor_paste']}</label> </li> <li> <input type='checkbox' class='input_check' id='clearSavedContent' name="clearSavedContent" value="1" /> <label for='clearSavedContent'>{$this->lang->words['editor_clear_data']}</label> </li> </ul> </fieldset> </div> <div class='right' style='position: relative'> <a href='#' id='ipsEditorOptionsSave' class='ipsButton_secondary'>{$this->lang->words['editor_ok']}</a> </div> </div> mediaGenericWrapper <div class='clearfix'> {$pages} </div> <div> <ul class='media_results'> <if test="hasrows:|:count($rows)"> <foreach loop="genericmedia:$rows as $row"> <li class='result' onclick="return CKEDITOR.plugins.ipsmedia.insert( '{$row['insert']}' );"> <if test="hasimage:|:$row['image']"> <img src='{$row['image']}' alt=''<if test="haswidth:|:$row['width']"> width='{$row['width']}'</if><if test="hasheight:|:$row['height']"> height='{$row['height']}'</if> style='max-width: 80px;' class='media_image' /><br /> </if> <strong>{parse expression="IPSText::truncate( $row['title'], 15 )"}</strong> <if test="hasdescription:|:$row['desc']"> <br /><span class='desc'>{parse expression="IPSText::truncate( $row['desc'], 15 )"}</span> </if> </li> </foreach> <else /> <li class='no_messages'> {$this->lang->words['no_mymedia_rows']} </li> </if> </ul> </div> <div class='clearfix'> {$pages} </div> sharedMedia <h3>{$this->lang->words['mymedia_title']}</h3> <div class='fixed_inner ipsBox'> <div id='mymedia_inserted' style='display: none'>{$this->lang->words['added_to_editor']}</div> <div class='ipsVerticalTabbed ipsLayout ipsLayout_withleft ipsLayout_smallleft clearfix'> <div class='ipsVerticalTabbed_tabs ipsLayout_left'> <ul id='mymedia_tabs'> <foreach loop="mediatabs:$tabs as $tab"> <li id='{$tab['app']}_{$tab['plugin']}'><a href='#' onclick="return CKEDITOR.plugins.ipsmedia.loadTab( '{$tab['app']}', '{$tab['plugin']}' );">{$tab['title']}</a></li> </foreach> </ul> </div> <div class='ipsVerticalTabbed_content ipsLayout_content ipsBox_container' style='position: relative'> <div class='ipsType_small' id='mymedia_toolbar'> <a href='#' id='mymedia_finish' class='ipsButton no_width' onclick="CKEDITOR.plugins.ipsmedia.popup.hide(); return false;"><img src='{$this->settings['img_url']}/accept.png' /> {$this->lang->words['mymedia_finished']}</a> <input type='hidden' name='sharedmedia_search_app' id='sharedmedia_search_app' value='' /> <input type='hidden' name='sharedmedia_search_plugin' id='sharedmedia_search_plugin' value='' /> <input type='text' name='search_string' id='sharedmedia_search' value="{$this->lang->words['start_typing_sms']}" size='30' class='input_text inactive' /> <input class='input_submit' type='button' id='sharedmedia_submit' value='{$this->lang->words['search_string_search']}' /> <a href='#' id='sharedmedia_reset' class='ipsType_smaller'>{$this->lang->words['search_string_reset']}</a> </div> <div id='mymedia_content' class='ipsPad'> {parse template="sharedMediaDefault" group="editors" params=""} </div> </div> </div> </div> <script type='text/javascript'> ipb.vars['sm_init_value'] = "{$this->lang->words['start_typing_sms']}"; CKEDITOR.plugins.ipsmedia.searchinit(); </script> sharedMediaDefault <h1 class='ipsType_pagetitle' style='text-align: center'>{$this->lang->words['mymedia_title']}</h1> <h2 class='ipsType_subtitle desc' style='text-align: center'>{$this->lang->words['shareable_media_warn']}</h2> Документация от docs.ckeditor.com/#!/guide/dev_installation по интеграции. И так, что где менять? Кто в теме, обобщите ваши мысли. Edited 9 февраля, 201410 yr by AlexBrtn Запрещенны активные ссылки и картинки на сторонних хостингах!!!
29 января, 201410 yr comment_53284 Задался тем же вопросом. Ранее как-то пробовал обновлять, но сдался. У меня CKEditor вообще тогда грузиться отказался..
9 февраля, 201410 yr comment_54918 Не знаю,у меня в стандартном всё отлично работает. Этот слишком грамоздкий.
9 февраля, 201410 yr Author comment_54920 Не знаю,у меня в стандартном всё отлично работает. Этот слишком грамоздкий. Там каждая функция настраивается Edited 18 февраля, 201410 yr by AlexBrtn
12 марта, 201410 yr comment_58262 Встроил данный редактор путем тупой замены папки ckeditor из архива. Сюда "/public/js/3rd_party/ckeditor" В итоге получил редактор, но форма "быстрого ответа" работает как поле редактирования, без панели. "Расширенная форма" вроде бы, исправно работает. Как заставить работать форум "быстрого ответа" не знаю. А так же как добавить, например, кнопку смайлов. Есть у кого соображения на этот счет?
16 марта, 201410 yr comment_58677 @AlexBrtn: how do you intergrate new version of CKEditor in your IPBoard as your screenshot ?
23 августа, 201410 yr comment_70421 да Инструкцию подробную где-нибудь можно найти? Я через поиск по IPBMafia попробовал - не нашел.
23 августа, 201410 yr Author comment_70438 Инструкцию подробную где-нибудь можно найти? Я через поиск по IPBMafia попробовал - не нашел. Нет. Для этого и тема была создана.
12 сентября, 201410 yr Author comment_71253 sorry my english but it's not appear fast reply...how fixed it? in the first post, it not the instruction. It only setting of a question me. As to make it who from attendees doesn't know, including me. If you simply replaced the folder, that field of "prompt reply" won't be. How to correct and correctly to integrate CKEditor I don't know.
12 сентября, 201410 yr comment_71261 AlexBrtn,thanks for answer, i just replaced in Director publicjs3rd_partyckeditor everything, first i delete everything and after that i upload CKEditor files, and also replace ajaxEditBox , editor,editorLoadJs,editorSettings, mediaGenericWrapper and other scripts as you have, can't anyone help me? how show up in fast reply thanks
13 сентября, 201410 yr Author comment_71311 AlexBrtn,thanks for answer, i just replaced in Director publicjs3rd_partyckeditor everything, first i delete everything and after that i upload CKEditor files, and also replace ajaxEditBox , editor,editorLoadJs,editorSettings, mediaGenericWrapper and other scripts as you have, can't anyone help me? how show up in fast reply thanks I don't know
20 апреля, 20159 yr Author comment_85571 смогли вмонтировать новый стиль или нет? Нет. И не пытался со своими знаниями. Пытался выйти на тех кто встраивал на forum.worldoftanks.ru, писали, что не знают человека, который им делал. включая модераторов.
20 апреля, 20159 yr comment_85576 на оф. сайте редактора полно вопросов как обновиться, но ни одного ответа. Вечером поставлю форум тестовый, попробую потыкать. Если все получится, скину как сделал)
20 апреля, 20159 yr comment_85602 поставил на тестовый, работает в расширенной форме. На быстром ответе редактор при загрузке мелькнет и пропадает. Чую, что нужно копать в сторону шаблонов: editor ,editorLoadJs, editorSettings. Там переписывать что-то, пока не разобрался что. Буду еще тыкать. Кстати, на оф. форуме танков работает таблица прекрасно, но сейчас у меня не работает. ФАК почитал, до конца не понял, что-то с бб-кодами надо копаться. А чего их тех. поддержки не было желающих обновить редактор? Может поможете или зададите направление?
20 апреля, 20159 yr comment_85610 поставил на тестовый, работает в расширенной форме. На быстром ответе редактор при загрузке мелькнет и пропадает. Чую, что нужно копать в сторону шаблонов: editor ,editorLoadJs, editorSettings. Там переписывать что-то, пока не разобрался что. Буду еще тыкать. Кстати, на оф. форуме танков работает таблица прекрасно, но сейчас у меня не работает. ФАК почитал, до конца не понял, что-то с бб-кодами надо копаться. А чего их тех. поддержки не было желающих обновить редактор? Может поможете или зададите направление? Я нашел проблему, там стоит dispay:none, он задается от javascript, но где я так и не нашел.
22 апреля, 20159 yr Author comment_85716 Кстати, на оф. форуме танков работает таблица прекрасно Может в глобальном css прописать стили для таблиц? table{ border-collapse: collapse; } th{ padding:10px; border-top: 1px solid black; border-bottom: 1px solid black; background-color: #618AD2; color: white; } td{ padding: 10px; border-bottom: 1px solid #ccc;
22 апреля, 20159 yr comment_85717 Может в глобальном css прописать стили для таблиц? table{ border-collapse: collapse; } th{ padding:10px; border-top: 1px solid black; border-bottom: 1px solid black; background-color: #618AD2; color: white; } td{ padding: 10px; border-bottom: 1px solid #ccc; Тогда уж нужно прописать для всех функций редактора.
22 апреля, 20159 yr comment_85739 задал вопрос на оф. форуме танков, послали в ЦПП))) задал там, жду ответ.
22 апреля, 20159 yr comment_85741 В 22.04.2015 в 18:20, rustav сказал: задал вопрос на оф. форуме танков, послали в ЦПП))) задал там, жду ответ. Поверьте, ничего дельного Вам не ответят. В 22.04.2015 в 19:31, AlexBrtn сказал: Центральная прачечная?) Центр Поддержки Пользователей.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.