Nokita Kaze 2014-12-26 09:45:36 +03:00
parent fbe0b698c2
commit 6777d8b241
5 changed files with 68 additions and 50 deletions

View file

@ -47,6 +47,9 @@
"option_fancybox_bind_images_to_one_flow": { "option_fancybox_bind_images_to_one_flow": {
"message": "Bind all images from fancybox to one flow" "message": "Bind all images from fancybox to one flow"
}, },
"option_fancybox_smart_hints": {
"message": "Smart hints for images in fancybox gallery"
},
"option_images_load_original": { "option_images_load_original": {
"message": "Load original images instead of thumbnails" "message": "Load original images instead of thumbnails"
}, },

View file

@ -47,6 +47,9 @@
"option_fancybox_bind_images_to_one_flow": { "option_fancybox_bind_images_to_one_flow": {
"message": "Связать все картинки в одну галерею" "message": "Связать все картинки в одну галерею"
}, },
"option_fancybox_smart_hints": {
"message": "Включить умные описания для картинок при скроллинге галереи"
},
"option_images_load_original": { "option_images_load_original": {
"message": "Загружать оригиналы вместо миниатюр" "message": "Загружать оригиналы вместо миниатюр"
}, },

View file

@ -108,65 +108,27 @@ $(document).ready(function() {
$('.post-content .text').each(function() { $('.post-content .text').each(function() {
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'one_flow_gallery'); $(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'one_flow_gallery');
}); });
} }else{
// Images
if (options.option_fancybox_images.value == true) {
if (options.option_fancybox_bind_images_to_one_flow.value !== true) {
// Linking images in posts to the galleries
$('.post-content .text').each(function(idxPost) { $('.post-content .text').each(function(idxPost) {
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'post' + idxPost); $(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'post' + idxPost);
}); });
} }
// Images
if (options.option_fancybox_images.value == true) {
// Init fancybox // Init fancybox
$('.postimg:not(.youtube)').fancybox({ $('.postimg:not(.youtube)').fancybox({
type: 'image' type: 'image'
}); });
} }
// Правим хинт в FancyBox
$('.post').each(function() {
var all_post_images = $(this).find('.postimg');
if (all_post_images.length == 0) {
return;
}
var tags = $(this).find('div.tags a.tag'); // Правим хинты у фансибокса
var hint_text = '';// Текст для хинта в FancyBox if (options.option_fancybox_smart_hints.value == true) {
// Сначала теги fancybox_set_smart_hints();
for (var i = 0; i < tags.length; i++) { } else {
var tag_name = $(tags[i]).html().toLowerCase(); $('.post .postimg').attr('data-fancybox-title', ' ');
hint_text += ' ' + tag_name;
} }
// Потом текст
var textcontent = $(this).find('.text-content');
if (textcontent.length > 0) {
textcontent = textcontent[0];
for (var i = 0; i < textcontent.childNodes.length; i++) {
var current_child_node = textcontent.childNodes[i];
if ((current_child_node.nodeName !== 'P') && (current_child_node.nodeName !== '#text')) {
continue;
}
var a = $(current_child_node).find('a.postimg');
if (a.length > 0) {
continue;
}
var tmp_str = current_child_node.textContent.replace(/(\n(\r)?)/g, ' ');
tmp_str = tmp_str.replace("\t", " ");
hint_text += ' ' + tmp_str;
}
}
// Режем
hint_text = hint_text.replace(new RegExp(' {2,}'), ' ').replace(new RegExp(' +$'), '').substr(1);
if (hint_text.length > 140) {
hint_text = hint_text.substr(0, 140 - 3) + '...';
}
all_post_images.attr('data-fancybox-title', hint_text);
});
// Videos // Videos
if (options.option_fancybox_videos.value == true) { if (options.option_fancybox_videos.value == true) {
$('.postimg.youtube').addClass('fancybox-media').fancybox({ $('.postimg.youtube').addClass('fancybox-media').fancybox({
@ -675,7 +637,7 @@ function parse_webm(current_options) {
if (n = href.match(new RegExp('\\.webm(\\?.+)?$', 'i'))) { if (n = href.match(new RegExp('\\.webm(\\?.+)?$', 'i'))) {
var player = document.createElement('video'); var player = document.createElement('video');
// @todo Там может быть не vp8+vorbis // Там может быть не vp8+vorbis, но мы этого никак не узнаем
$(player).html('<source src="' + href + '" type=\'video/webm; codecs="vp8, vorbis"\' />').attr('controls', 'controls').css({ $(player).html('<source src="' + href + '" type=\'video/webm; codecs="vp8, vorbis"\' />').attr('controls', 'controls').css({
'display': 'block', 'display': 'block',
'max-width': '95%' 'max-width': '95%'
@ -1055,3 +1017,49 @@ function parse_coub_links(current_options) {
} }
}); });
} }
// Правим хинт в FancyBox
function fancybox_set_smart_hints(){
$('.post').each(function() {
var all_post_images = $(this).find('.postimg');
if (all_post_images.length == 0) {
return;
}
var tags = $(this).find('div.tags a.tag');
var hint_text = '';// Текст для хинта в FancyBox
// Сначала теги
for (var i = 0; i < tags.length; i++) {
var tag_name = $(tags[i]).html().toLowerCase();
hint_text += ' ' + tag_name;
}
// Потом текст
var textcontent = $(this).find('.text-content');
if (textcontent.length > 0) {
textcontent = textcontent[0];
for (var i = 0; i < textcontent.childNodes.length; i++) {
var current_child_node = textcontent.childNodes[i];
if ((current_child_node.nodeName !== 'P') && (current_child_node.nodeName !== '#text')) {
continue;
}
var a = $(current_child_node).find('a.postimg');
if (a.length > 0) {
continue;
}
var tmp_str = current_child_node.textContent.replace(/(\n(\r)?)/g, ' ');
tmp_str = tmp_str.replace("\t", " ");
hint_text += ' ' + tmp_str;
}
}
// Режем
hint_text = hint_text.replace(new RegExp(' {2,}'), ' ').replace(new RegExp(' +$'), '').substr(1);
if (hint_text.length > 140) {
hint_text = hint_text.substr(0, 140 - 3) + '...';
}
all_post_images.attr('data-fancybox-title', hint_text);
});
}

View file

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "Point+", "name": "Point+",
"version": "1.17.4", "version": "1.18.0",
"default_locale": "ru", "default_locale": "ru",
"author": "__MSG_ext_author__", "author": "__MSG_ext_author__",
"homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus", "homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus",

View file

@ -36,6 +36,10 @@
<div class="option-node"> <div class="option-node">
<input type="checkbox" class="option-boolean" id="option-fancybox-bind-images-to-one-flow"><label for="option-fancybox-bind-images-to-one-flow" data-i18n="option_fancybox_bind_images_to_one_flow"></label> <input type="checkbox" class="option-boolean" id="option-fancybox-bind-images-to-one-flow"><label for="option-fancybox-bind-images-to-one-flow" data-i18n="option_fancybox_bind_images_to_one_flow"></label>
</div> </div>
<div class="option-node">
<input type="checkbox" class="option-boolean" id="option-fancybox-smart-hints"><label for="option-fancybox-smart-hints" data-i18n="option_fancybox_smart_hints"></label>
</div>
</div> </div>
<div class="option-node"> <div class="option-node">