Новости Joomla

Joomla REST API без прав суперадминистратора. RBAC в Joomla

Joomla REST API без прав суперадминистратора. RBAC в Joomla

👩‍💻 Joomla REST API без прав суперадминистратора. RBAC в Joomla.На канале известного французского разработчика и специалиста по Joomla REST API Alexandre ELISÉ вышло новое видео.RBAC (Role-Based Access Control) - это управление доступом на основе ролей, метод управления доступом к ресурсам, основанный на назначении ролей пользователям. Вместо назначения прав каждому пользователю точечно права доступа группируются по ролям, а пользователи получают доступ к ресурсам уже в зависимости от своей роли. В контексте Joomla и REST API он может даже мешать работе: без авторизованного пользователя вы не можете даже показать контент. В видео показано как решить данную проблему. Создаётся "технический пользователь", которому разрешается просматривать контент, но не разрешено создавать, редактировать, удалять и т.д. И все запросы к REST API идут с использованием его токена. [fr-FR] Services Web API Joomla SANS être Super Admin RBAC natif avec Joomla@joomlafeed #joomla #разработка #rest

InterLinked - плагин автоматической внутренней перелинковки для Joomla

InterLinked - плагин автоматической внутренней перелинковки для Joomla

👩‍💻 InterLinked - плагин автоматической внутренней перелинковки для Joomla.Несвязанные статьи - это молчаливый убийца привлекательности вашего сайта на Joomla, который заставляет читателей сворачивать работу и подрывает эффективность вашего SEO. Content - InterLinked - это бесплатный, проверенный в боях плагин, который кладет конец этой бессмыслице, автоматически генерируя ссылки на основе ключевых слов между статьями на вашем сайте Joomla 5. Он создает сеть связей, используя ключевые слова статей (metakey) и ассоциации категорий, с настраиваемыми всплывающими подсказками, целевыми объектами ссылок и классами CSS, сохраняя при этом существующие ссылки и повышая производительность за счет кэширования. Кроме того, ссылки со временем меняются по мере того, как в новых статьях используются ключевые слова, что делает ваш контент свежим и актуальным.Возможности.- автоматическая перелинковка на основе значения meta-keywords материалов- встроенная поддержка материалов Joomla- пользовательские ассоциации категорий для создания ссылок (например "Блог" к "Учбеникам")- показ всплывающих подсказок к автоматическим ссылкам (опционально)- настраиваемый атрибут target для ссылок.- указание CSS класса для стилизации ссылок- кэширование совпадений ключевых слов и их ассоциаций- учёт существующих тегов <a> во избежание дублирующих ссылок- автоматическое добавление новых ссылок при появлении новых ассоциаций- веб-доступность: ARIA для ссылок с target="_blank".Плагин бесплатный. Заявлена поддержка Joomla 4 и Joomla 5.Joomla Extensions DirectoryСтраница расширенияСкачать@joomlafeed#joomla #расширения #seo

joomLab Gallery - плагин галереи изображений для Joomla

👩‍💻 joomLab Gallery - плагин галереи изображений для Joomla.Плагин joomLab Gallery позволит Вам добавлять в любой материал неограниченное количество галерей, а главное удобно управлять файлами и эффектами в каждой галерее.Плагин использует популярны скрипты Swiper.js и FancyBox. Первый для крутой организации и эффектов галерей, а второй для красивого и функционального показа оригинальных изображений на Вашем сайте.На данный момент плагин имеет 10 макетов вывода - это 10 различных эффектов галерей и Вы можете совмещать все 10 в 1 материале.Плагин позволяет гибко настраивать индивидуально каждую галерею в материале. Вы можете выбрать макет, эффекты и даже можете управлять функциями всплывающего окна изображения.Недостатки.Такой вид реализации не предусматривает выбор изображения на сервере. Т.е. Вы не можете выбрать уже добавленное фото, только загружать заново. Плагин не предоставляет возможности доступа к медиа-менеджеру.Плагин бесплатный. Разработчик - участник нашего сообщества Александр Новиков (@pro-portal).Страница расширения@joomlafeed#joomla #расширения

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

Aviva

  • Захожу иногда
  • 89
  • 0 / 0
Что за карточка?  по тому же принципу все сделать можно наверника.
извините внимательно путь темы не посмотрела. Карточка товаров в VirtueMart.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
извините внимательно путь темы не посмотрела. Карточка товаров в VirtueMart.
все тоже самое найдите в коде виртуал матра где формируется эта карточка и вставьте туда ( останется только найдти переменную которая отвечает за формир ссылки)
Код
<div class="ads_knopki">

<table width="100%" border="0"><tr width="100%">
<td align="right"><script src="/components/com_adsmanager/ok.js" type="text/javascript"></script></td>
<td align="left">
<table border="0"><tr>
<td ><a class="mrc__share" href="http://connect.mail.ru/share">Поделиться</a>
<script src="/components/com_adsmanager/mail.js" type="text/javascript"></script></td>
<td><script type="text/javascript"  src="/components/com_adsmanager/vkontakte.js"   charset="UTF-8"</script>
<script type="text/javascript">
document.write(VK.Share.button(false,{type: "round", text: "Сохранить"})); </script></td>
<td>
<a href="http://www.livejournal.com/update.bml"
 onClick="location.href='http://www.livejournal.com/update.bml?event='+encodeURIComponent(document.location.href) + ' &subject=<?php echo stripslashes(adsmanager_html::cutLongWord($row->ad_headline));?>'; return false;">
<img src="components/com_adsmanager/images/livejournal.png" border="0" align="absmiddle" alt="Опубликовать в своем блоге livejournal.com" width="86" height="18" title="Опубликовать в ЖЖ"></a></td>
</tr></table>
</td></tr></table>


</div>
Вот это должно работать и на марте ( переменные за форм ссылки тут не нужны , за иссключении $row->ad_headline отвечает за заголовок( title который будет передаваться в форму какая в марте я не знаю))
как вариант можно использовать для каждого сервиса код который для ЖЖ используется <a href="http://www.livejournal.com/update.bml"
 onClick="location.href='http://www.livejournal.com/update.bml?event='+encodeURIComponent(document.location.href) + ' &subject=<?php echo stripslashes(adsmanager_html::cutLongWord($row->ad_headline));?>'; return false;"> ( только в разных сервисах разная последовательность передачи ( в ЖЖ сначала ссылка  encodeURIComponent(document.location.href)  потом текст и заголовок )
« Последнее редактирование: 13.09.2010, 18:35:07 от AlexSims »
С фантазией плохо.
*

Aviva

  • Захожу иногда
  • 89
  • 0 / 0
Не получается. Вот что показывает после фото товара
  
Fatal error: Class 'adsmanager_html' not found in Z:\home\localhost\www\mag-sot\components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php on line 27


« Последнее редактирование: 14.09.2010, 01:42:39 от Aviva »
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Не получается. Вот что показывает после фото товара
 
Fatal error: Class 'adsmanager_html' not found in Z:\home\localhost\www\mag-sot\components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php on line 27
ну правильно ссылки то надо поправить в соответствии с вашим компонентом . тут то под адсманаджер сделано
stripslashes(adsmanager_html::cutLongWord($row->ad_headline))   вот это чисто под адс функция   ищете  в виртуал марте функцию которая обрабатывает заголовк и пишите ее)

С фантазией плохо.
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
Очень бы хотелось добавить кнопки к Vm

Особенно нужна кнопка "поделиться в контакте"

Может поможете с таким модулем!
Смотрю....
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
вставить туда где нужна кнопка
Код
<td><script type="text/javascript"  src="components/com_adsmanager/vkontakte.js"   charset="UTF-8"</script><script type="text/javascript">
document.write(VK.Share.button(false,{type: "round", text: "Сохранить"})); </script></td>
 путь (components/com_adsmanager/vkontakte.js) поправить в соответствии с тем где у вас будет лежать скрипт vkontakte.js

вот сам скрипт
сохраните как vkontakte.js
Код
if (!window.VK) window.VK = {};
if (!VK.Share) {
  VK.Share = {
    _popups: [],
    _gens: [],
    _base_domain: '',
    _ge: function(id) {
      return document.getElementById(id);
    },
    button: function(gen, but, index) {
      if (!gen) gen = {};
      if (gen === gen.toString()) gen = {url: gen.toString()};
      if (!gen.url) gen.url = location.toString();

      if (!but) but = {type: 'round'};
      if (but === but.toString()) but = {type: 'round', text: but};
      if (!but.text) but.text = 'Сохранить';

      var old = true, count_style = 'display: none', count_width = 22;
      if (index === undefined) {
        gen.count = 0;
        gen.shared = (but.type == 'button' || but.type == 'round')? false : true;
        this._gens.push(gen);
        this._popups.push(false);
        index = this._popups.length - 1;
        old = false;
      } else {
        if ((gen.count = this._gens[index].count) && (but.type == 'button' || but.type == 'round')) {
          count_style = '';
          count_width = 29;
        }
        gen.shared = this._gens[index].shared;
        this._gens[index] = gen;
      }

      var head = document.getElementsByTagName('head')[0];
      if (!this._base_domain) {
        for (var elem = head.firstChild; elem; elem = elem.nextSibling) {
          var m;
          if (elem.tagName && elem.tagName.toLowerCase() == 'script' && (m = elem.src.match(/(http:\/\/(?:[a-z0-9_\-]*\.)?(?:vk\.com|vkontakte\.ru)\/)js\/api\/share\.js(?:\?|$)/))) {
            this._base_domain = m[1];
          }
        }
      }
      if (!this._base_domain) {
        this._base_domain = 'http://vkontakte.ru/';
      }
      if (!old && (but.type == 'button' || but.type == 'round')) {
        var elem = document.createElement('script');
        elem.src = this._base_domain + 'share.php?act=count&index=' + index + '&url=' + encodeURIComponent(gen.url);
        head.appendChild(elem);
      }
      if (but.type == 'button' || but.type == 'button_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;"><td></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #3b6798;"><div style="border: 1px solid #5c82ab; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-size: 10px; font-family: tahoma;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) 0px 0px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #a2b9d3; border-left: 0px; background-color: #dee6f1; height: 15px; padding: 2px 4px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '</tr></table>';
      } else if (but.type == 'round' || but.type == 'round_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle;"><div style="height: 21px; width: 2px; background: url(http://vk.com/images/btns.png) no-repeat -21px -42px;"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #3b6798; border-left: 0px;"><div style="border: 1px solid #5c82ab; border-left: 0px; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-family: tahoma; font-size: 10px;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) 0px -21px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #a2b9d3; border-width: 1px 0px; background-color: #dee6f1; height: 15px; padding: 2px 3px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) -27px -42px; width: 2px; height: 21px;' + count_style + '"></div></td>' +
               '</tr></table>';
      } else if (but.type == 'link') {
        return '<table style="width: auto; cursor: pointer; line-height: normal;" onmouseover="this.rows[0].cells[1].firstChild.style.textDecoration=\'underline\'" onmouseout="this.rows[0].cells[1].firstChild.style.textDecoration=\'none\'" onclick="VK.Share.click(' + index + ')" cellspacing="0" cellpadding="0"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle;"><img src="http://vk.com/images/vk16.png" style="vertical-align: middle;"/></td>' +
               '<td style="vertical-align: middle;"><span style="padding-left: 5px; color: #2B587A; font-family: tahoma; font-size: 11px;">' + but.text + '</span></td>' +
               '</tr></table>';
      } else if (but.type == 'link_noicon') {
        return '<span style="cursor: pointer; font-family: tahoma; font-size: 11px; color: #2B587A; line-height: normal;" onmouseover="this.style.textDecoration=\'underline\'" onmouseout="this.style.textDecoration=\'none\'" onclick="VK.Share.click(' + index + ');">' + but.text + '</span>';
      } else {
        return '<span style="cursor: pointer" onclick="VK.Share.click(' + index + ');">' + but.text + '</span>';
      }
    },
    change: function(state, index) {
      var row = this._ge('vkshare' + index).rows[0];
      var elem = row.cells[1].firstChild.firstChild;
      if (state == 0) {
        elem.style.backgroundColor = '#6d8fb3';
        elem.style.borderTopColor = '#7e9cbc';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#5c82ab';
      } else if (state == 1) {
        elem.style.backgroundColor = '#84a1bf';
        elem.style.borderTopColor = '#92acc7';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#7293b7';
      } else if (state == 2) {
        elem.style.backgroundColor = '#6688ad';
        elem.style.borderBottomColor = '#7495b8';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderTopColor = '#51779f';
      }
      var left = row.cells[0].firstChild;
      if (left) {
        if (state == 0) {
          left.style.backgroundPosition = '0px 0px';
        } else if (state == 1) {
          left.style.backgroundPosition = '-23px -42px';
        } else if (state == 2) {
          left.style.backgroundPosition = '-25px -42px';
        }
      }
    },
    click: function(index) {
      var details = this._gens[index];
      if (!details.shared) {
        VK.Share.count(index, details.count + 1);
        details.shared = true;
      }
      var undefined;
      if (details.noparse === undefined) {
        details.noparse = details.title && details.description && details.image;
      }
      details.noparse = details.noparse ? 1 : 0;

      var params = {url: details.url};
      var fields = ['title', 'description', 'image', 'noparse'];
      for (var i = 0; i < fields.length; ++i) {
        if (details[fields[i]]) {
          params[fields[i]] = details[fields[i]];
        }
      }

      var popupName = '_blank';
      var width = 554;
      var height = 349;
      var left = (screen.width - width) / 2;
      var top = (screen.height - height) / 2;
      var popupParams = 'scrollbars=0, resizable=1, menubar=0, left=' + left + ', top=' + top + ', width=' + width + ', height=' + height + ', toolbar=0, status=0';
      var popup = this._popups[index] = window.open('', popupName, popupParams);
      try {
        var text = '<form accept-charset="UTF-8" action="' + this._base_domain + 'share.php" method="POST" id="share_form">';
        for (var i in params) {
          text += '<input type="hidden" name="' + i + '" value="' + params[i].toString().replace(/"/g, '&quot;') + '" />';
        }
        text += '</form>';
        text += '<script type="text/javascript">document.getElementById("share_form").submit()</script>';

        text = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' +
               '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">' +
               '<head><meta http-equiv="content-type" content="text/html; charset=windows-1251" /></head>' +
               '<body>' + text + '</body></html>';
        popup.document.write(text);
      } catch (e) {
      }
      popup.blur();
      popup.focus();
    },
    count: function(index, count) {
      this._gens[index].count = count;
      var elem = this._ge('vkshare' + index);
      if (elem) {
        var row = elem.rows[0];
        if (count) {
          row.cells[3].firstChild.innerHTML = count;
          row.cells[2].firstChild.style.width = '29px';
          row.cells[3].firstChild.style.display = 'block';
          if (row.cells.length > 4) {
            row.cells[4].firstChild.style.display = 'block';
          }
        } else {
          row.cells[2].firstChild.style.width = '22px';
          row.cells[3].firstChild.style.display = 'none';
          if (row.cells.length > 4) {
            row.cells[4].firstChild.style.display = 'none';
          }
        }
      }
    }
  }
}

С фантазией плохо.
*

QueenSoft

  • Новичок
  • 7
  • 0 / 0
Почему когда я вставила кнопки у меня все вылезло за поля? фото текст... кстати я посмотрела у вас на сайте тоже все вылазит и не красиво смотрится это можно как то решить? спасибо
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
С фантазией плохо.
*

QueenSoft

  • Новичок
  • 7
  • 0 / 0
что велезает?
конкретно у Вас фото на фото накладывается вот http://9kvartira.ru/objavleniya.html?page=show_ad&adid=379&catid=8

у меня тоже фото+ меню объявлений с позиции left опускается вниз под все объявления.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
конкретно у Вас фото на фото накладывается вот http://9kvartira.ru/objavleniya.html?page=show_ad&adid=379&catid=8

у меня тоже фото+ меню объявлений с позиции left опускается вниз под все объявления.
ну это из-за резинового шаблона . при большом разрешении все окей , при маленьком налезают ( превьюшки фото не текст ). как вариант можно жестко указать размер. и тогда ничего налезать не будет
С фантазией плохо.
*

flier

  • Захожу иногда
  • 107
  • 2 / 2
Понравился 1й вариант с кнопками, но не понравилось то что само объявление вконтакт формируется неправильно, пищет титл сайта и описание сайта, а как сделать чтоб в титле было название объявления, а в описание сайта текст объявления?

и не те фото берутся из объявления!!
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Понравился 1й вариант с кнопками, но не понравилось то что само объявление вконтакт формируется неправильно, пищет титл сайта и описание сайта, а как сделать чтоб в титле было название объявления, а в описание сайта текст объявления?

и не те фото берутся из объявления!!
ну титл сайта пишет потому что у вас страница с объявлением без названия тоже и с описанием . ( подразумевается что на странице объявления заголовок страницы и есть название объявления и дескриптион есть описание объявы)

если хотите оставить все как есть но чтоб правильно передавалось - редактируйте скрипт вконтакте
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
небольшие изменения в кнопках и добавил кнопку из одноклассников.
код для кнопки Одноклассников ( со счетчиком)

Код
<link href="http://stg.odnoklassniki.ru/share/odkl_share.css" rel="stylesheet">
<script src="http://stg.odnoklassniki.ru/share/odkl_share.js" type="text/javascript" ></script>

<td>
<div style="float: left;">
<?php $tar =  sefRelToAbs("index.php?option=$option&page=show_ad&adid=$row->id&catid=$row->category"); ?>
<a class="odkl-klass-stat" href="<?php echo $tar;?>"  onclick="ODKL.Share(this);return false;" ><span>0</span></a>
</div>
</td>

в конце формировании страницы код
Код
<body onload="ODKL.init();">


изменил код для мейл кнопки
(это код первую картинку ловит чтоб ее передать в мейл) его ставим прямо перед выводом самой кнопки
Код
<?php 
for($i=1;$i < 2;$i++)
{
$ext_name = chr(ord('a')+$i-1);
$img = "/images/$option/images/".$row->id.$ext_name."_t.jpg";
}
?>
Далее сама кнопка с передачей в мейл Заголовка, картинки, описания
Код
<td ><a target="_blank" class="mrc__plugin_like_button" href="http://connect.mail.ru/share?imageurl=http://9kvartira.ru<?php echo $img;?>&amp;title=<?php echo stripslashes(adsmanager_html::cutLongWord($row->ad_headline));?>&amp;description=<?php echo stripslashes(adsmanager_html::cutLongWord($row->ad_text));?>" data-mrc-config="{'type' : 'button', 'width' : '150', 'show_faces' : 'true'}">Поделиться</a>
<script src="http://cdn.connect.mail.ru/js/loader.js" type="text/javascript" charset="UTF-8"></script></td>
С фантазией плохо.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
AlexSims для 2.6 есть решение закладок в контакте и в одноклассниках ?
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
используйте этот же код
Код
<table border="0"><tr>
<link href="http://stg.odnoklassniki.ru/share/odkl_share.css" rel="stylesheet">
<script src="http://stg.odnoklassniki.ru/share/odkl_share.js" type="text/javascript" ></script>

<td>
<div style="float: left;">
<?php $tar =  sefRelToAbs("index.php?option=$option&page=show_ad&adid=$row->id&catid=$row->category"); ?>
<a class="odkl-klass-stat" href="<?php echo $tar;?>"  onclick="ODKL.Share(this);return false;" ><span>0</span></a>
</div>
</td>
<td><script src="components/com_adsmanager/vkontakte.js" type="text/javascript"  charset="UTF-8"></script><script>
document.write(VK.Share.button(false,{type: "round", text: "Сохранить"})); </script></td>

</tr>
</table>

только соответственно поменять переменные в формировании ссылки $tar на те которые в 2.6 версии
С фантазией плохо.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
вот какой результат      это мой косяк?
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
стилями подправьте чтоб на одной линии было и косяк какой то с отображением скрипта . вы вот этот пользовали?
Код
if (!window.VK) window.VK = {};
if (!VK.Share) {
  VK.Share = {
    _popups: [],
    _gens: [],
    _base_domain: '',
    _ge: function(id) {
      return document.getElementById(id);
    },
    button: function(gen, but, index) {
      if (!gen) gen = {};
      if (gen === gen.toString()) gen = {url: gen.toString()};
      if (!gen.url) gen.url = location.toString();

      if (!but) but = {type: 'round'};
      if (but === but.toString()) but = {type: 'round', text: but};
      if (!but.text) but.text = 'Сохранить';

      var old = true, count_style = 'display: none', count_width = 22;
      if (index === undefined) {
        gen.count = 0;
        gen.shared = (but.type == 'button' || but.type == 'round')? false : true;
        this._gens.push(gen);
        this._popups.push(false);
        index = this._popups.length - 1;
        old = false;
      } else {
        if ((gen.count = this._gens[index].count) && (but.type == 'button' || but.type == 'round')) {
          count_style = '';
          count_width = 29;
        }
        gen.shared = this._gens[index].shared;
        this._gens[index] = gen;
      }

      var head = document.getElementsByTagName('head')[0];
      if (!this._base_domain) {
        for (var elem = head.firstChild; elem; elem = elem.nextSibling) {
          var m;
          if (elem.tagName && elem.tagName.toLowerCase() == 'script' && (m = elem.src.match(/(http:\/\/(?:[a-z0-9_\-]*\.)?(?:vk\.com|vkontakte\.ru)\/)js\/api\/share\.js(?:\?|$)/))) {
            this._base_domain = m[1];
          }
        }
      }
      if (!this._base_domain) {
        this._base_domain = 'http://vkontakte.ru/';
      }
      if (!old && (but.type == 'button' || but.type == 'round')) {
        var elem = document.createElement('script');
        elem.src = this._base_domain + 'share.php?act=count&index=' + index + '&url=' + encodeURIComponent(gen.url);
        head.appendChild(elem);
      }
      if (but.type == 'button' || but.type == 'button_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;"><td></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #3b6798;"><div style="border: 1px solid #5c82ab; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-size: 10px; font-family: tahoma;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) 0px 0px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #a2b9d3; border-left: 0px; background-color: #dee6f1; height: 15px; padding: 2px 4px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '</tr></table>';
      } else if (but.type == 'round' || but.type == 'round_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle;"><div style="height: 21px; width: 2px; background: url(http://vk.com/images/btns.png) no-repeat -21px -42px;"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #3b6798; border-left: 0px;"><div style="border: 1px solid #5c82ab; border-left: 0px; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-family: tahoma; font-size: 10px;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) 0px -21px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle;"><div style="border: 1px solid #a2b9d3; border-width: 1px 0px; background-color: #dee6f1; height: 15px; padding: 2px 3px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '<td style="vertical-align: middle;"><div style="background: url(http://vk.com/images/btns.png) -27px -42px; width: 2px; height: 21px;' + count_style + '"></div></td>' +
               '</tr></table>';
      } else if (but.type == 'link') {
        return '<table style="width: auto; cursor: pointer; line-height: normal;" onmouseover="this.rows[0].cells[1].firstChild.style.textDecoration=\'underline\'" onmouseout="this.rows[0].cells[1].firstChild.style.textDecoration=\'none\'" onclick="VK.Share.click(' + index + ')" cellspacing="0" cellpadding="0"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle;"><img src="http://vk.com/images/vk16.png" style="vertical-align: middle;"/></td>' +
               '<td style="vertical-align: middle;"><span style="padding-left: 5px; color: #2B587A; font-family: tahoma; font-size: 11px;">' + but.text + '</span></td>' +
               '</tr></table>';
      } else if (but.type == 'link_noicon') {
        return '<span style="cursor: pointer; font-family: tahoma; font-size: 11px; color: #2B587A; line-height: normal;" onmouseover="this.style.textDecoration=\'underline\'" onmouseout="this.style.textDecoration=\'none\'" onclick="VK.Share.click(' + index + ');">' + but.text + '</span>';
      } else {
        return '<span style="cursor: pointer" onclick="VK.Share.click(' + index + ');">' + but.text + '</span>';
      }
    },
    change: function(state, index) {
      var row = this._ge('vkshare' + index).rows[0];
      var elem = row.cells[1].firstChild.firstChild;
      if (state == 0) {
        elem.style.backgroundColor = '#6d8fb3';
        elem.style.borderTopColor = '#7e9cbc';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#5c82ab';
      } else if (state == 1) {
        elem.style.backgroundColor = '#84a1bf';
        elem.style.borderTopColor = '#92acc7';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderBottomColor = '#7293b7';
      } else if (state == 2) {
        elem.style.backgroundColor = '#6688ad';
        elem.style.borderBottomColor = '#7495b8';
        elem.style.borderLeftColor = elem.style.borderRightColor = elem.style.borderTopColor = '#51779f';
      }
      var left = row.cells[0].firstChild;
      if (left) {
        if (state == 0) {
          left.style.backgroundPosition = '0px 0px';
        } else if (state == 1) {
          left.style.backgroundPosition = '-23px -42px';
        } else if (state == 2) {
          left.style.backgroundPosition = '-25px -42px';
        }
      }
    },
    click: function(index) {
      var details = this._gens[index];
      if (!details.shared) {
        VK.Share.count(index, details.count + 1);
        details.shared = true;
      }
      var undefined;
      if (details.noparse === undefined) {
        details.noparse = details.title && details.description && details.image;
      }
      details.noparse = details.noparse ? 1 : 0;

      var params = {url: details.url};
      var fields = ['title', 'description', 'image', 'noparse'];
      for (var i = 0; i < fields.length; ++i) {
        if (details[fields[i]]) {
          params[fields[i]] = details[fields[i]];
        }
      }

      var popupName = '_blank';
      var width = 554;
      var height = 349;
      var left = (screen.width - width) / 2;
      var top = (screen.height - height) / 2;
      var popupParams = 'scrollbars=0, resizable=1, menubar=0, left=' + left + ', top=' + top + ', width=' + width + ', height=' + height + ', toolbar=0, status=0';
      var popup = this._popups[index] = window.open('', popupName, popupParams);
      try {
        var text = '<form accept-charset="UTF-8" action="' + this._base_domain + 'share.php" method="POST" id="share_form">';
        for (var i in params) {
          text += '<input type="hidden" name="' + i + '" value="' + params[i].toString().replace(/"/g, '&quot;') + '" />';
        }
        text += '</form>';
        text += '<script type="text/javascript">document.getElementById("share_form").submit()</script>';

        text = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' +
               '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">' +
               '<head><meta http-equiv="content-type" content="text/html; charset=windows-1251" /></head>' +
               '<body>' + text + '</body></html>';
        popup.document.write(text);
      } catch (e) {
      }
      popup.blur();
      popup.focus();
    },
    count: function(index, count) {
      this._gens[index].count = count;
      var elem = this._ge('vkshare' + index);
      if (elem) {
        var row = elem.rows[0];
        if (count) {
          row.cells[3].firstChild.innerHTML = count;
          row.cells[2].firstChild.style.width = '29px';
          row.cells[3].firstChild.style.display = 'block';
          if (row.cells.length > 4) {
            row.cells[4].firstChild.style.display = 'block';
          }
        } else {
          row.cells[2].firstChild.style.width = '22px';
          row.cells[3].firstChild.style.display = 'none';
          if (row.cells.length > 4) {
            row.cells[4].firstChild.style.display = 'none';
          }
        }
      }
    }
  }
}
С фантазией плохо.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Да этот. да они на одно полосе. мне не нравится что кнопка вконтакте прерывестая
Код

сделал так. большое спасибо.
 if (but.type == 'button' || but.type == 'button_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;"><td></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="border: 1px solid #3b6798;"><div style="border: 1px solid #5c82ab; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-size: 10px; font-family: tahoma;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="background: url(http://vk.com/images/btns.png) 0px 0px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="border: 1px solid #a2b9d3; border-left: 0px; background-color: #dee6f1; height: 15px; padding: 2px 4px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '</tr></table>';
      } else if (but.type == 'round' || but.type == 'round_nocount') {
        return '<table cellspacing="0" cellpadding="0" id="vkshare' + index + '" onmouseover="VK.Share.change(1, ' + index + ');" onmouseout="VK.Share.change(0, ' + index + ');" onmousedown="VK.Share.change(2, ' + index + ');" onmouseup="VK.Share.change(1, ' + index + ');" onclick="VK.Share.click(' + index + ');" style="width: auto; cursor: pointer; border: 0px;"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle; padding:0px;"><div style="height: 21px; width: 2px; background: url(http://vk.com/images/btns.png) no-repeat -21px -42px;"></div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="border: 1px solid #3b6798; border-left: 0px;"><div style="border: 1px solid #5c82ab; border-left: 0px; border-top-color: #7e9cbc; background-color: #6d8fb3; color: #fff; text-shadow: 0px 1px #45688E; height: 15px; padding: 2px 4px 0px 6px; font-family: tahoma; font-size: 10px;">' + but.text + '</div></div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="background: url(http://vk.com/images/btns.png) 0px -21px no-repeat; width:' + count_width + 'px; height: 21px"></div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="border: 1px solid #a2b9d3; border-width: 1px 0px; background-color: #dee6f1; height: 15px; padding: 2px 3px 0px 2px; font-size: 10px; font-family: tahoma;' + count_style + '">' + gen.count + '</div></td>' +
               '<td style="vertical-align: middle; padding:0px;"><div style="background: url(http://vk.com/images/btns.png) -27px -42px; width: 2px; height: 21px;' + count_style + '"></div></td>' +
               '</tr></table>';
      } else if (but.type == 'link') {
        return '<table style="width: auto; cursor: pointer; line-height: normal;" onmouseover="this.rows[0].cells[1].firstChild.style.textDecoration=\'underline\'" onmouseout="this.rows[0].cells[1].firstChild.style.textDecoration=\'none\'" onclick="VK.Share.click(' + index + ')" cellspacing="0" cellpadding="0"><tr style="line-height: normal;">' +
               '<td style="vertical-align: middle; padding:0px;"><img src="http://vk.com/images/vk16.png" style="vertical-align: middle;"/></td>' +
               '<td style="vertical-align: middle; padding:0px;"><span style="padding-left: 5px; color: #2B587A; font-family: tahoma; font-size: 11px;">' + but.text + '</span></td>' +
               '</tr></table>';
« Последнее редактирование: 29.09.2011, 14:07:26 от AlexAl »
*

marozz1k

  • Захожу иногда
  • 316
  • 8 / 0
cкажи пожалуйста, вот у меня пример социальных кнопок, срочно нужны одноглазники:

Код
//social
//vk
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',vk,')!== false){
    $mainframe->addCustomHeadTag("<script type=\"text/javascript\" src=\"http://vkontakte.ru/js/api/share.js?3\" charset=\"windows-1251\"></script>");
$pic = $mosConfig_absolute_path."/images/com_adsmanager/foto/".$ad->id."a_t.jpg";
if(file_exists( $pic)){
    $vk.= "<script type=\"text/javascript\">document.write(VK.Share.button({type: \"round_nocount\", text: \"".ADSMANAGER_FORM_SUBMIT_TEXT."\",title: \"".str_replace(array("'",'"',"\n","\r")," ", ADSMANAGER_PAGE_TITLE . $ad->cat . " - ". $ad->ad_headline)."\",description:\"".str_replace(array("'",'"',"\n","\r")," ", $desc)."...\",image:\"$mosConfig_live_site/images/$option/foto/".$ad->id."a_t.jpg\"}));</script>";
        }else{
    $vk.= "<script type=\"text/javascript\">document.write(VK.Share.button({type: \"round_nocount\", text: \"".ADSMANAGER_FORM_SUBMIT_TEXT."\",title: \"".str_replace(array("'",'"',"\n","\r")," ", ADSMANAGER_PAGE_TITLE . $ad->cat . " - ". $ad->ad_headline)."\",description:\"".str_replace(array("'",'"',"\n","\r")," ", $desc)."...\"}));</script>";
}
$socialpl.= "<td>$vk</td>";
}
//vk
//mail
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',mail,')!== false){
    $mail = '<a class="mrc__share" href="http://connect.mail.ru/share"></a><script src="http://cdn.connect.mail.ru/js/share/2/share.js" type="text/javascript"></script>';
    $socialpl.= "<td>$mail</td>";
}
//mail
$url_to_ad = sefRelToAbs("index.php?option=$option&page=show_ad&adid=$adid&catid=$catid&Itemid=$itemid");
//facebook
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',fb,')!== false){
    $fb = '<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>';
    $fb.= '<a name="fb_share" type="button_count" share_url="'.$url_to_ad.'" ></a>';//<- invalid
    $socialpl.= "<td>$fb</td>";
}
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
про одноглазников не знаю..

вот одноклассники вот код
Код
<table border="0"><tr>
<link href="http://stg.odnoklassniki.ru/share/odkl_share.css" rel="stylesheet">
<script src="http://stg.odnoklassniki.ru/share/odkl_share.js" type="text/javascript" ></script>

<td>
<div style="float: left;">
<?php $tar =  sefRelToAbs("index.php?option=$option&page=show_ad&adid=$row->id&catid=$row->category"); ?>
<a class="odkl-klass-stat" href="<?php echo $tar;?>"  onclick="ODKL.Share(this);return false;" ><span>0</span></a>
</div>
</td>
С фантазией плохо.
*

marozz1k

  • Захожу иногда
  • 316
  • 8 / 0
да что-то не получается прикрутить, если просто тупо вставить этот код заместо, допустим ненужного твиттера - то ошибка, пробую подставлять переменные, по аналогии мейл.ру того же... всё равно где-то не так делаю... помогите пожалуйста с переменными этими, тут в сборке грината как-то по-хитрому немного сделаны эти социальные плагины, за помощь готов заплатить символическими 100 р. , скажем... Спасибо! пример кнопок прилагаю,
Код
//mail
$url_to_ad = sefRelToAbs("index.php?option=$option&page=show_ad&adid=$adid&catid=$catid&Itemid=$itemid");
//facebook
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',fb,')!== false){
    $fb = '<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>';
    $fb.= '<a name="fb_share" type="button_count" share_url="'.$url_to_ad.'" ></a>';//<- invalid
    $socialpl.= "<td>$fb</td>";
}
//google buzz
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',buzz,')!== false){
    $pic = $mosConfig_absolute_path."/images/com_adsmanager/foto/".$ad->id."a_t.jpg";
if(file_exists( $pic)){
        $gb = '<a href="http://www.google.com/buzz/post" class="google-buzz-button" title="Google Buzz" data-message="'.str_replace(array("'",'"',"\n","\r")," ", $desc).'" data-url="'.$url_to_ad.'" data-locale="ru" data-imageurl="'.$mosConfig_live_site.'/images/'.$option.'/foto/'.$ad->id.'a_t.jpg" data-button-style="small-count"></a>';
}else{
        $gb = '<a href="http://www.google.com/buzz/post" class="google-buzz-button" title="Google Buzz" data-message="'.str_replace(array("'",'"',"\n","\r")," ", $desc).'" data-url="'.$url_to_ad.'" data-locale="ru" data-button-style="small-count"></a>';
        }
$gb.= '<script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script>';
    $socialpl.= "<td>$gb</td>";
}
//twetter
if(mosGetParam( $_GET, 'page')=="show_ad" && strpos($conf->view_option,',twiter,')!== false){
    $tw = '<script type="text/javascript">tweetmeme_style = \\\'compact\\\';tweetmeme_url = \\\''.$url_to_ad.'\\\';</script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>';
$socialpl.= "<td>$tw</td>";
}
if(strlen($socialpl)>20){
    $mail = "<script type=\"text/javascript\">
    var str='".implode("'+'<'+'",explode('<',$socialpl))."';
document.write(str);
</script>";
    $socialpl = '<center><table id="socialbookmarks" style="vertcial-align:center;"><tbody><tr>'.$mail.'</tr></tbody></table>';
}else{
    $socialpl = '';
}
*

Avory

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
подскажите пожалуйста, а в какой именно файл вставлять код? (j1.5 am2.6)
*

JomTime

  • Захожу иногда
  • 126
  • 3 / 2
  • Joom
подскажите пожалуйста, а в какой именно файл вставлять код? (j1.5 am2.6)
Поддерживаю в какой файл?:)
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
щас перешел на другой вариант соц закладок от яндекса. ( ИМХО посимпотичнее выглядят)

вот код ( для версии 2.6 вставлять в фаил \components\com_adsmanager\views\details\tmpl\default.php )
Код
<script type="text/javascript" src="components/com_adsmanager/yandex.js" charset="utf-8"></script>
<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></div>

сам скрипт брать по ссылке http://yandex.st/share/share.js и сохранить в файле yandex.js и в папку /components/com_adsmanager.
С фантазией плохо.
*

Avory

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
спасибо!, с яндексом все сразу получилось
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
С фантазией плохо.
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Уважаемый AlexSims! Подскажите пожалуйста, как Вы сделали после поле общая площать (кв.м.)?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 3745
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
Примеры работ с использованием Adsmanager

Автор fuss

Ответов: 851
Просмотров: 206936
Последний ответ 07.03.2019, 23:06:17
от Den JW
[Решено] Похожие объявления в AdsManager 2.9.13

Автор Ishti39

Ответов: 17
Просмотров: 5218
Последний ответ 06.06.2017, 22:08:18
от gremeru777
Скрыть часть номера телефона в объявлении

Автор djsante

Ответов: 3
Просмотров: 4604
Последний ответ 30.05.2017, 12:18:42
от SeBun
[Решено] IP адрес разместившего объявление в ADS 2.5 Как ?

Автор semo777

Ответов: 20
Просмотров: 5142
Последний ответ 15.03.2017, 22:22:15
от lustoff