1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-08 09:24:25 +03:00

developer-jquery, совместиость с xtext

This commit is contained in:
Sergey S Yaglov 2012-01-15 03:47:20 +03:00
parent 17eab63cd1
commit 1930b193b2
5 changed files with 104 additions and 31 deletions

View file

@ -5,4 +5,8 @@
.note { font-size: 12px; color: #aaa; } .note { font-size: 12px; color: #aaa; }
.checkbox { position: relative; top: 2px; margin: 0 4px 0 1px; } .checkbox { position: relative; top: 2px; margin: 0 4px 0 1px; }
.question-list { margin-bottom: 15px; } .question-list { margin-bottom: 15px; }
.question-list li { margin-bottom: 3px; } .question-list li { margin-bottom: 3px; }
.markItUp { width: 100%; }
.markItUpEditor { width: 100%; -moz-box-sizing: border-box; box-sizing: border-box; }
.markItUpHeader { width: 100%; -moz-box-sizing: border-box; box-sizing: border-box; height: 28px; }

View file

@ -34,6 +34,10 @@ ls.blocks = (function ($) {
*/ */
this.load = function(obj, block, params){ this.load = function(obj, block, params){
var id = $(obj).attr('id'); var id = $(obj).attr('id');
/*loadBefore*/ //-loadBefore
if(!id) return;
params=$.extend(true,{},this.options.type[id].params || {},params || {}); params=$.extend(true,{},this.options.type[id].params || {},params || {});
var content = $('#'+block+'_content'); var content = $('#'+block+'_content');
@ -64,6 +68,7 @@ ls.blocks = (function ($) {
ls.msg.error(null, result.sMsg); ls.msg.error(null, result.sMsg);
} else { } else {
content.html(result.sText); content.html(result.sText);
ls.hook.run('ls_block_onload_html_after',[content,id,result],this);
} }
}; };
@ -73,7 +78,7 @@ ls.blocks = (function ($) {
/** /**
* Подключаем действующие блоки * Подключаем действующие блоки
*/ */
jQuery(document).ready(function($){ jQuery(function($){
$('[id^="block_stream_item"]').click(function(){ $('[id^="block_stream_item"]').click(function(){
ls.blocks.load(this, 'block_stream'); ls.blocks.load(this, 'block_stream');
return false; return false;

View file

@ -128,8 +128,8 @@ ls.comments = (function ($) {
if (aCmt.length > 0 && result.iMaxIdComment) { if (aCmt.length > 0 && result.iMaxIdComment) {
$("#comment_last_id").val(result.iMaxIdComment); $("#comment_last_id").val(result.iMaxIdComment);
$('#count-comments').text(parseInt($('#count-comments').text())+aCmt.length); $('#count-comments').text(parseInt($('#count-comments').text())+aCmt.length);
if ($('#block_stream_item_comment').length && ls.blocks) { if (ls.blocks) {
ls.blocks.load($('#block_stream_item_comment'), 'block_stream'); ls.blocks.load('#block_stream_item_comment', 'block_stream');
} }
} }
var iCountOld=0; var iCountOld=0;
@ -169,6 +169,7 @@ ls.comments = (function ($) {
} else { } else {
$('#comments').append(newComment); $('#comments').append(newComment);
} }
ls.hook.run('ls_comment_inject_after',arguments,newComment);
} }

View file

@ -24,14 +24,14 @@ ls.hook = (function ($) {
this.cloneFunc = function(func,as_text,no_def) { this.cloneFunc = function(func,as_text,no_def) {
var f; var f;
if(typeof func=='string'){ if($.type(func)=='string'){
eval('f = '+func+';'); eval('f = '+func+';');
}else if(typeof func=='object'){ }else if($.type(func)=='array'){
f = func[0][func[1]]; f = func[0][func[1]];
}else{ }else{
f = func; f = func;
} }
if(typeof f=='function'){ if($.type(f)=='function'){
var fbody = f.toString().replace(/^(function)([^\(]*)\(/gi, '$1 ('); var fbody = f.toString().replace(/^(function)([^\(]*)\(/gi, '$1 (');
if(typeof as_text!='undefined' && as_text){ if(typeof as_text!='undefined' && as_text){
if(typeof no_def!='undefined' && no_def){ if(typeof no_def!='undefined' && no_def){
@ -52,14 +52,14 @@ ls.hook = (function ($) {
*/ */
this.inject = function(func,funcInj,marker) { this.inject = function(func,funcInj,marker) {
var funcBody = ls.hook.cloneFunc(func, 1); var funcBody = ls.hook.cloneFunc(func, 1);
var funcDefinition = (typeof func=='string'?func:(typeof func=='object'?'func[0][func[1]]':'func'))+' = '; var funcDefinition = ($.type(func)=='string'?func:($.type(func)=='array'?'func[0][func[1]]':'func'))+' = ';
var replaceFrom = /\{/m; var replaceFrom = /\{/m;
var replaceTo = '{ '; var replaceTo = '{ ';
if(typeof marker == 'string'){ if($.type(marker) == 'string'){
replaceFrom = new RegExp('(/\\*'+marker+'\\*/)', 'm'); replaceFrom = new RegExp('(/\\*'+marker+'\\*/)', 'm');
replaceTo = '$1'; replaceTo = '$1';
} }
if(typeof funcInj=='function'){ if($.type(funcInj)=='function'){
var funcInjName = 'funcInj'+Math.floor(Math.random()*1000000); var funcInjName = 'funcInj'+Math.floor(Math.random()*1000000);
eval('window["'+funcInjName+'"] = funcInj;'); eval('window["'+funcInjName+'"] = funcInj;');
eval(funcDefinition + funcBody.replace(replaceFrom,replaceTo+funcInjName+'.apply(this, arguments); ')); eval(funcDefinition + funcBody.replace(replaceFrom,replaceTo+funcInjName+'.apply(this, arguments); '));
@ -91,12 +91,15 @@ ls.hook = (function ($) {
}); });
for(var i in hooks[name]){ for(var i in hooks[name]){
var callback = hooks[name][i].callback; var callback = hooks[name][i].callback;
if(typeof callback == 'function'){ if($.type(callback) == 'function'){
callback.apply(o, params); callback.apply(o, params);
}else if(typeof callback == 'object'){ }else if($.type(callback) == 'array'){
//console.log(callback);
callback[0][callback[1]].apply(o, params); callback[0][callback[1]].apply(o, params);
}else{ }else if($.type(callback) == 'string'){
eval('(function(){'+callback+'}).apply(o, params);'); eval('(function(){'+callback+'}).apply(o, params);');
}else{
ls.debug('cant call hook "'+name+'"['+i+']');
} }
} }
} }

View file

@ -4,6 +4,22 @@ Function.prototype.bind = function(context) {
return fn.apply(context, arguments); return fn.apply(context, arguments);
}; };
}; };
String.prototype.tr = function(a,p) {
var k;
var p = typeof(p)=='string' ? p : '';
var s = this;
for(k in a){
var tk = p?p.split('/'):[];
tk[tk.length] = k;
var tp = tk.join('/');
if(typeof(a[k])=='object'){
s = s.tr(a[k],tp);
}else{
s = s.replace((new RegExp('%%'+tp+'%%', 'g')), a[k]);
};
};
return s;
};
var ls = ls || {}; var ls = ls || {};
@ -61,9 +77,7 @@ ls.lang = (function ($) {
if (this.msgs[name]) { if (this.msgs[name]) {
var value=this.msgs[name]; var value=this.msgs[name];
if (replace) { if (replace) {
$.each(replace,function(k,v){ value = value.tr(replace);
value=value.replace(new RegExp('%%'+k+'%%','g'),v);
});
} }
return value; return value;
} }
@ -90,7 +104,7 @@ ls.swfupload = (function ($) {
post_params: {'SSID':SESSION_ID, 'security_ls_key': LIVESTREET_SECURITY_KEY}, post_params: {'SSID':SESSION_ID, 'security_ls_key': LIVESTREET_SECURITY_KEY},
// File Upload Settings // File Upload Settings
file_types : "*.jpg; *.JPG;*.png;*.gif", file_types : "*.jpg;*.jpe;*.jpeg;*.png;*.gif;*.JPG;*.JPE;*.JPEG;*.PNG;*.GIF",
file_types_description : "Images", file_types_description : "Images",
file_upload_limit : "0", file_upload_limit : "0",
@ -126,14 +140,19 @@ ls.swfupload = (function ($) {
} }
this.loadSwf = function() { this.loadSwf = function() {
$.getScript(DIR_ROOT_ENGINE_LIB+'/external/swfupload/swfupload.swfobject.js',function(){ if(!window.SWFUpload){
$.getScript(DIR_ROOT_ENGINE_LIB+'/external/swfupload/swfupload.swfobject.js',function(){
}.bind(this)); }.bind(this));
$.getScript(DIR_ROOT_ENGINE_LIB+'/external/swfupload/swfupload.js',function(){ $.getScript(DIR_ROOT_ENGINE_LIB+'/external/swfupload/swfupload.js',function(){
this.initOptions();
$(this).trigger('load');
}.bind(this));
}else{
this.initOptions(); this.initOptions();
$(this).trigger('load'); $(this).trigger('load');
}.bind(this)); }
} }
this.init = function(opt) { this.init = function(opt) {
@ -210,23 +229,47 @@ ls.tools = (function ($) {
* Предпросмотр * Предпросмотр
*/ */
this.textPreview = function(textId, save, divPreview) { this.textPreview = function(textId, save, divPreview) {
var text =(BLOG_USE_TINYMCE) ? tinyMCE.activeEditor.getContent() : $('#'+textId).val(); var text =(BLOG_USE_TINYMCE) ? tinyMCE.activeEditor.getContent() : $('#'+textId).val();
ls.ajax(aRouter['ajax']+'preview/text/', {text: text, save: save}, function(result){ var ajaxUrl = aRouter['ajax']+'preview/text/';
var ajaxOptions = {text: text, save: save};
/*textPreviewAjaxBefore*/ //-textPreviewAjaxBefore
ls.ajax(ajaxUrl, ajaxOptions, function(result){
if (!result) { if (!result) {
ls.msg.error('Error','Please try again later'); ls.msg.error('Error','Please try again later');
} }
if (result.bStateError) { if (result.bStateError) {
ls.msg.error('Error','Please try again later'); ls.msg.error(result.sMsgTitle||'Error',result.sMsg||'Please try again later');
} else { } else {
if (!divPreview) { if (!divPreview) {
divPreview = 'text_preview'; divPreview = 'text_preview';
} }
/*textPreviewDisplayBefore*/ //-textPreviewDisplayBefore
if ($('#'+divPreview).length) { if ($('#'+divPreview).length) {
$('#'+divPreview).html(result.sText); $('#'+divPreview).html(result.sText);
/*textPreviewDisplayAfter*/ //-textPreviewDisplayAfter
} }
} }
}); });
} }
/**
* Возвращает выделенный текст на странице
*/
this.getSelectedText = function(){
var text = '';
if(window.getSelection){
text = window.getSelection().toString();
} else if(window.document.selection){
var sel = window.document.selection.createRange();
text = sel.text || sel;
if(text.toString) {
text = text.toString();
} else {
text = '';
}
}
return text;
}
return this; return this;
}).call(ls.tools || {},jQuery); }).call(ls.tools || {},jQuery);
@ -260,7 +303,7 @@ ls = (function ($) {
url=aRouter['ajax']+url+'/'; url=aRouter['ajax']+url+'/';
} }
return $.ajax({ var ajaxOptions = {
type: more.type || "POST", type: more.type || "POST",
url: url, url: url,
data: params, data: params,
@ -277,7 +320,11 @@ ls = (function ($) {
ls.debug("base complete: "); ls.debug("base complete: ");
ls.debug(msg); ls.debug(msg);
}.bind(this) }.bind(this)
}); };
ls.hook.run('ls_ajax_before', [ajaxOptions], this);
return $.ajax(ajaxOptions);
}; };
@ -309,6 +356,8 @@ ls = (function ($) {
} }
ls.hook.run('ls_ajaxsubmit_before', [options], this);
form.ajaxSubmit(options); form.ajaxSubmit(options);
} }
@ -316,6 +365,7 @@ ls = (function ($) {
* Загрузка изображения * Загрузка изображения
*/ */
this.ajaxUploadImg = function(form, sToLoad) { this.ajaxUploadImg = function(form, sToLoad) {
/*ajaxUploadImgBefore*/ //-ajaxUploadImgBefore
ls.ajaxSubmit('upload/image/',form,function(data){ ls.ajaxSubmit('upload/image/',form,function(data){
if (data.bStateError) { if (data.bStateError) {
ls.msg.error(data.sMsgTitle,data.sMsg); ls.msg.error(data.sMsgTitle,data.sMsg);
@ -323,6 +373,7 @@ ls = (function ($) {
$.markItUp({ replaceWith: data.sText} ); $.markItUp({ replaceWith: data.sText} );
$('#form_upload_img').find('input[type="text"], input[type="file"]').val(''); $('#form_upload_img').find('input[type="text"], input[type="file"]').val('');
$('#form_upload_img').jqmHide(); $('#form_upload_img').jqmHide();
/*ajaxUploadImgAfter*/ //-ajaxUploadImgAfter
} }
}); });
} }
@ -330,18 +381,18 @@ ls = (function ($) {
/** /**
* Дебаг сообщений * Дебаг сообщений
*/ */
this.debug = function(msg) { this.debug = function() {
if (this.options.debug) { if (this.options.debug) {
this.log(msg); this.log.apply(this,arguments);
} }
} }
/** /**
* Лог сообщений * Лог сообщений
*/ */
this.log = function(msg) { this.log = function() {
if (window.console && window.console.log) { if (window.console && window.console.log) {
console.log(msg); Function.prototype.bind.call(console.log, console).apply(console, arguments);
} else { } else {
//alert(msg); //alert(msg);
} }
@ -420,6 +471,9 @@ ls.autocomplete = (function ($) {
jQuery(document).ready(function($){ jQuery(document).ready(function($){
// Хук начала инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_start',[],window);
// Всплывающие окна // Всплывающие окна
$('#login_form').jqm({trigger: '#login_form_show'}); $('#login_form').jqm({trigger: '#login_form_show'});
$('#blog_delete_form').jqm({trigger: '#blog_delete_show'}); $('#blog_delete_form').jqm({trigger: '#blog_delete_show'});
@ -428,6 +482,9 @@ jQuery(document).ready(function($){
$('#userfield_form').jqm(); $('#userfield_form').jqm();
// Datepicker // Datepicker
/**
* TODO: навесить языки на datepicker
*/
$('.date-picker').datepicker({ $('.date-picker').datepicker({
dateFormat: 'dd.mm.yy', dateFormat: 'dd.mm.yy',
dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'], dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
@ -438,7 +495,7 @@ jQuery(document).ready(function($){
// Поиск по тегам // Поиск по тегам
$('#tag_search_form').submit(function(){ $('#tag_search_form').submit(function(){
window.location = aRouter['tag']+$('#tag_search').val()+'/'; window.location = aRouter['tag']+encodeURIComponent($('#tag_search').val())+'/';
return false; return false;
}); });
@ -452,4 +509,7 @@ jQuery(document).ready(function($){
// Скролл // Скролл
$(window)._scrollable(); $(window)._scrollable();
// Хук конца инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_end',[],window);
}); });