Ciao a Tutti,
mi sono imbattuto in questo problema con K2.
- ho definito una serie di campi extra (extra fields) per una categoria
- ho collegato il gruppo di campi extra ad una categoria
- ho caricato alcuni articoli in quella categoria, e fin qui tutto bene.
- ho poi creato una nuova categoria, abbinandogli lo stesso gruppo di campi extra
- ho quindi preso un articolo già esistente, e ho provato a cambiare la categoria, a questo punto al cambio della categoria, i campi extra scomparivano del tutto... tab vuoto.
Ho quindi controllato con gli strumenti di debug del browser ed ho notato che questa operazione generava un errore in JS.
Ho quindi corretto il seguente file:
/media/kw/assets/js/k2.js [dalla linea 882]
function initExtraFieldsEditor() {
....
} else {
new nicEditor({
fullPanel : true,
maxHeight : 180,
iconsPath : K2SitePath + 'media/k2/assets/images/system/nicEditorIcons.gif'
}).panelInstance($K2(this).attr('id'));
Viene usata la variaabile K2SitePath, che in questo punto NON E' STATA DEFINITA.
Ho quindi aggiunto una parte di codice, presa dalla testa del file stesso.
Vi riporto qui la funzione corretta e funzionante e il file k2.js completo in allegato.
function initExtraFieldsEditor() {
$K2('.k2ExtraFieldEditor').each(function() {
var id = $K2(this).attr('id');
if ( typeof tinymce != 'undefined') {
if (tinyMCE.get(id)) {
tinymce.EditorManager.remove(tinyMCE.get(id));
}
if(tinymce.majorVersion == 4) {
tinymce.init({selector: '#'+id});
tinymce.editors[id].show();
} else {
tinyMCE.execCommand('mceAddControl', false, id);
}
} else {
function getUrlParams(targetScript, varName) {
var scripts = document.getElementsByTagName('script');
var scriptCount = scripts.length;
for (var a = 0; a < scriptCount; a++) {
var scriptSrc = scripts[a].src;
if (scriptSrc.indexOf(targetScript) >= 0) {
varName = varName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var re = new RegExp("[\\?&]" + varName + "=([^&#]*)");
var parsedVariables = re.exec(scriptSrc);
if (parsedVariables !== null) {
return parsedVariables[1];
}
}
}
}
// Set the site root path
var K2SitePath = getUrlParams('k2.js', 'sitepath');
new nicEditor({
fullPanel : true,
maxHeight : 180,
iconsPath : K2SitePath + 'media/k2/assets/images/system/nicEditorIcons.gif'
}).panelInstance($K2(this).attr('id'));
}
});
}
Questo problema è presente anche nell'ultimissima versione K2 2.6.8 appena aggiornata.
Con questa modifica la gestione dei campi ha ripreso a funzionare correttamente.
Vi segnalo questo problema augurandomi che possa essere segnalato agli sviluppatori e che quindi venga risolto per le prossime versioni.
Saluti
Massimo