Убираем лишние поля в модуле форме комментирования Amiro CMS

И так, есть задача: отключить ненужные поля для отправки сообщения в гостевую книгу сайта написанного на Amiro CMS.
Сделать это простой настройкой в админ панели не получится. Придется редактировать шаблоны.

Задача 1 вам просто нужно отключить смайлы.

Сделать это достаточно просто. Для этого нужно:

1) Найти в коде шаблона «guestbook.tpl» такой текст:

txtEd.allowedImages = new Array (##allowed_images##);

2) Сразу за ним вставить вот такой код:


txtEd.this.baseSmiles = []; txtEd.allSmiles = [];

Задача 2. Поотключать все лишнее. Оставить только имя, заголовок и текст сообщения

Тут задача немного сложнее, но тем не менее, выполнима.

1) Найти в коде шаблона «guestbook.tpl» такой текст:

txtEd.allowedImages = new Array (##allowed_images##);

2) Сразу за этим кодом вставьте вот это:



txtEd.createEditor = function(taWidth, taHeight, taValueName, taValue, isValueHTML, idPreviewDiv){ if (typeof(isValueHTML) != undefined) { var re = /(|)/gi; taValue = taValue.replace(re, ''); } txtEd.editorId = 'id'+taValueName; var i = 0; var contentPreviewDiv = ''; if(typeof(idPreviewDiv) != "undefined"){ txtEd.idPreviewDiv = idPreviewDiv; }else{ txtEd.idPreviewDiv = 'amiroTEdDivPreview'; contentPreviewDiv = ' <div id="amiroTEdDivPreview" class="amiroTEdDivPreview" style="width: ' + (taWidth - 12) + 'px; margin-bottom: 7px;"></div> '; } document.writeln( ' <div id="amiroTEdDiv" class="amiroTEdDiv">' + contentPreviewDiv + '</div> ' + ' <div id="amiroTEdDivEditor" class="amiroTEdDivEditor">' + '<textarea class="amiroTEdCtrl" style="height: '+taHeight+'px;" onkeydown="return '+txtEd.varName+'.procKeyPress(event)" onkeyup="'+txtEd.varName+'.procKeyUp()" name="'+taValueName+'">' +</textarea> <textarea class="amiroTEdCtrl" style="height: '+taHeight+'px;" onkeydown="return '+txtEd.varName+'.procKeyPress(event)" onkeyup="'+txtEd.varName+'.procKeyUp()" name="'+taValueName+'"> (typeof(isValueHTML) == undefined || !isValueHTML ? taValue : txtEd.fromHTMLContent(taValue)) +</textarea> <textarea id="'+txtEd.editorId+'" class="amiroTEdCtrl" style="height: '+taHeight+'px;" onkeydown="return '+txtEd.varName+'.procKeyPress(event)" onkeyup="'+txtEd.varName+'.procKeyUp()" name="'+taValueName+'"> '</textarea> ' + '</div> ' ); txtEd.editorObj = document.getElementById(txtEd.editorId); txtEd.isInitialized = true; };

 

Собственно, это все что может понадобиться. В принципе, на основе приведенных выше примеров, вы сами сможете отключить то что вам не нужно.

Если возникнут вопросы, пишите. Постараюсь на них ответить

Array.IndexOf и IE

Как обычно, IE преподносит сюрпризы каждый день.
Вот и сегодня, написал для одного сайта скрипт. Проверил, работает. Показал клиенту, тот говорит, что скрипт нерабочий!
Долго искать причину не пришлось. Оказалось, что в IE, даже в восьмой версии не реализован метод Array.indexOf!

Решается данная проблема очень просто. Нужно просто самому реализовать нужную функцию, если она отсутствует.
Вот как это можно сделать:

if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}