Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 538 Просмотров
*

rubinded

  • Захожу иногда
  • 54
  • 0 / 0
Есть интересный код для кнопок соцсетей, но он написан для WordPres. Чтоб заработал на Joomla 3 нужно заменить переменную, что выводит ссылку на текущую страницу.
Код
<?php the_permalink(); ?>
Весь интернет перерыл и не могу найти  *ОХ-Х-Х* Помогите пожалуйста... Привожу код:

HTML
Код
<div id="share">
<div class="like">Понравилось? Поделитесь с друзьями!</div>
<div class="social" data-url="<?php the_permalink(); ?>" data-title="<?php the_title(); ?>">
<a class="push facebook" data-id="fb"><i class="fa fa-facebook"></i> Facebook</a>
<a class="push twitter" data-id="tw"><i class="fa fa-twitter"></i> Twitter</a>
<a class="push vkontakte" data-id="vk"><i class="fa fa-vk"></i> Вконтакте</a>
<a class="push ok" data-id="ok"><i class="fa fa-odnoklassniki"></i> Одноклассники</a>
</div>
</div>

JS
Код
var Shares = {
title: 'Поделиться',
width: 800,
height: 800,
init: function() {
var share = document.querySelectorAll('.social');
for (var i = 0, l = share.length; i < l; i++) {
var url = share[i].getAttribute('data-url') || location.href,
title = share[i].getAttribute('data-title') || '',
desc = share[i].getAttribute('data-desc') || '',
el = share[i].querySelectorAll('a');
for (var a = 0, al = el.length; a < al; a++) {
var id = el[a].getAttribute('data-id');
if (id) this.addEventListener(el[a], 'click', {
id: id,
url: url,
title: title,
desc: desc
});
}
}
},
addEventListener: function(el, eventName, opt) {
var _this = this,
handler = function() {
_this.share(opt.id, opt.url, opt.title, opt.desc);
};
if (el.addEventListener) {
el.addEventListener(eventName, handler);
} else {
el.attachEvent('on' + eventName, function() {
handler.call(el);
});
}
},
share: function(id, url, title, desc) {
url = encodeURIComponent(url);
desc = encodeURIComponent(desc);
title = encodeURIComponent(title);
switch (id) {
case 'fb':
this.popupCenter('https://www.facebook.com/sharer/sharer.php?u=' + url, this.title, this.width, this.height);
break;
case 'tw':
var text = title || desc || '';
if (title.length > 0 && desc.length > 0) text = title + ' - ' + desc;
if (text.length > 0) text = '&text=' + text;
this.popupCenter('https://twitter.com/intent/tweet?url=' + url + text, this.title, this.width, this.height);
break;
case 'viber':
this.popupCenter('viber://forward?text=' + url, this.title, this.width, this.height);
break;
case 'whatsapp':
this.popupCenter('https://api.whatsapp.com/send?text=' + url, this.title, this.width, this.height);
break;
case 'telegram':
this.popupCenter('https://telegram.me/share/url?url=' + url, this.title, this.width, this.height);
break;
}
},
newTab: function(url) {
var win = window.open(url, '_blank');
win.focus();
},
popupCenter: function(url, title, w, h) {
var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left;
var dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top;
var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (w / 2)) + dualScreenLeft;
var top = ((height / 3) - (h / 3)) + dualScreenTop;
var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
if (window.focus) {
newWindow.focus();
}
}
};
jQuery(document).ready(function($) {
$('.social a').on('click', function() {
var id = $(this).data('id');
if (id) {
var data = $(this).parent('.social');
var url = data.data('url') || location.href,
title = data.data('title') || '',
desc = data.data('desc') || '';
Shares.share(id, url, title, desc);
}
});
});

P.S. - Не знаю, влияет это на что-то или нет, но я использую на Joomla 3 компонент ZOO
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Re: Переменная для вывода ссылки
« Ответ #1 : 02.03.2020, 22:58:14 »
Судя по JS-коду (второй блок), атрибут со ссылкой data-url="<?php the_permalink(); ?>" (в первом блоке) можно вообще убрать. Тогда JS будет подставлять текущую ссылку.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

rubinded

  • Захожу иногда
  • 54
  • 0 / 0
Re: Переменная для вывода ссылки
« Ответ #2 : 02.03.2020, 23:56:26 »
можно вообще убрать
Да, вы правы! Вообще убрал и все работает. В другой ветке мне посоветовали заменить на
Код
<?php echo JURI::Current(); ?>

Работает и с ним и без него... Теперь нужно понять как прописать функцию, что выводит Заголовок страницы (Title) и название сайта. Вот почему-то для WordPres все сразу нашел, а для Joomla не могу. Для WordPres:

Заголовок
Код
<?php the_title(); ?>

Адрес сайта
Код
<?php bloginfo('name'); ?>

Не подскажите как прописать эти функции?  *ОХ-Х-Х*
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Re: Переменная для вывода ссылки
« Ответ #3 : 03.03.2020, 08:28:13 »
Код
$app = JFactory::getApplication('site');
// Установить title
$app->getDocument()->setTitle('Новый титл');
// Получить название сайта (фактически - чтение параметра из файла конфигурации /configuration.php)
$sitename = $app->getCfg('sitename', '');
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему ссылки меню одинаковые для разных представлений?

Автор borro

Ответов: 3
Просмотров: 516
Последний ответ 14.02.2020, 16:19:18
от borro
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 762
Последний ответ 06.02.2020, 15:40:58
от golinejj
Ссылки в модуле на сам модуль

Автор SeBun

Ответов: 12
Просмотров: 1325
Последний ответ 06.12.2019, 15:06:38
от Betty1412
Размещение вывода компонента в позиции(ях) шаблона

Автор tm2010

Ответов: 4
Просмотров: 918
Последний ответ 21.06.2018, 17:38:18
от tm2010
Убрать алиас пункта меню из ссылки

Автор denism300

Ответов: 0
Просмотров: 849
Последний ответ 13.12.2016, 11:15:39
от denism300