A

AlexSF

+187
Репутация
36
Рейтинг
#1 Организовать загрузку JS по условию 8 декабря 2012 в 15:40
работает такое условие
  1.  
  2. <script type="text/javascript">
  3. if (typeof(capslide) == 'undefined') {
  4. document.write('<scr' + 'ipt src="/templates/шаблон/js/jquery.capslide.js" type="text/javascript"></scr' + 'ipt>');
  5. }
  6. </script>
  7.  
но работает не в полном объёме. Все равно подгружает файл несколько раз.

Как запретить повторную загрузку файла????
#2 Организовать загрузку JS по условию 8 декабря 2012 в 14:57
Если я правильно понял, из кода под спойлером, то функция называется $.fn.capslide
сейчас попробую так:
  1.  
  2. <script type="text/javascript">
  3. if (typeof(fn.capslide) == 'undefined') {
  4. document.write('<script type="text/javascript" src="Путь к скрипту"></script>');
  5. }
  6. </script>
  7.  
#3 Организовать загрузку JS по условию 8 декабря 2012 в 13:39


А не проще ли просто адрес одинаковый прописать?...

Pasha

Ставил. Но всё равно подгрузка происходит дважды.

поэтому и хочу в модулях прописать условие — скрипт уже загружен следовательно повторно не загружаем
#1 Организовать загрузку JS по условию 8 декабря 2012 в 12:45
Доброго времени суток.

Есть пара разных модулей которые для своей работы используют одинаковый js скрипт. например — jquery.capslide.js
В обычном режиме(без моих изменений) они грузят этот файл с разных урлов(т.к модули разные) = не приятно да и ПэйджСпид в ФаерБаге матерится.
Вынеся загрузку jquery.capslide.js в шаблон сайта = уже лучше, но имеем загрузку данного скрипта на всех страницах сайта, что тоже не радует.

На одном форуме подсмотрел такой скриптик:
  1.  
  2. <script type="text/javascript">
  3. if (typeof(jQuery) == 'undefined') {
  4. document.write('<scr' + 'ipt type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></scr' + 'ipt>');
  5. }
  6. </script>
  7.  
"Модуль для своей работы подгружает jquery.min.js если на странице ранее не подключен другой jQuery."

И теперь вопрос:
Как правильно записать if (typeof(jQuery) == 'undefined') {, чтобы определялось наличие в коде страницы загружен ранее или нет скрипт jquery.capslide.js ?

P.S. забыл прицепить сам скрипт jquery.capslide.js

  1.  
  2.  
  3. (function($) {
  4. $.fn.capslide = function(b) {
  5. var opts = $.extend({}, $.fn.capslide.defaults, b);
  6. return this.each(function() {
  7. $this = $(this);
  8. var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
  9.  
  10. if(!o.showcaption) $this.find('.ic_caption').css('display','none');
  11. else $this.find('.ic_text').css('display','none');
  12.  
  13. var _img = $this.find('img:first');
  14. var w = _img.css('width');
  15. var h = _img.css('height');
  16. $('.ic_caption',$this).css({'color':o.caption_color,'background-color':o.caption_bgcolor,'bottom':'0px','width':w});
  17. $('.overlay',$this).css('background-color',o.overlay_bgcolor);
  18. $this.css({'width':w , 'height':h, 'border':o.border});
  19. $this.hover(
  20. function () {
  21. if((navigator.appVersion).indexOf('MSIE 7.0') > 0)
  22. $('.overlay',$(this)).show();
  23. else
  24. $('.overlay',$(this)).fadeIn();
  25. if(!o.showcaption)
  26. $(this).find('.ic_caption').slideDown(500);
  27. else
  28. $('.ic_text',$(this)).slideDown(500);
  29. },
  30. function () {
  31. if((navigator.appVersion).indexOf('MSIE 7.0') > 0)
  32. $('.overlay',$(this)).hide();
  33. else
  34. $('.overlay',$(this)).fadeOut();
  35. if(!o.showcaption)
  36. $(this).find('.ic_caption').slideUp(200);
  37. else
  38. $('.ic_text',$(this)).slideUp(200);
  39. }
  40. );
  41. });
  42. };
  43. $.fn.capslide.defaults = {
  44. caption_color : 'white',
  45. caption_bgcolor : 'black',
  46. overlay_bgcolor : 'blue',
  47. border : '1px solid #fff',
  48. showcaption : true
  49. };
  50. })(jQuery);
  51.  
  52.  
#5 Соц закладки для 1.10 15 ноября 2012 в 18:06


Вот, для любой версии любого движка: api.yandex.ru/share/

kreator
Хороший вариант.
От себя добавлю — share42.com/ru — можно выбирать кодировку и также не важно какая CMS используется
#7 Микроразметка Schema.org для InstantCms 14 ноября 2012 в 23:17


Нашёл в конструкторе форм mysayt/components/users/includes/ userforms.php, в районе 93 строки:

AlexSF
а на 1.10 где менять не подскажете?

Искус

По вашей просьбе сделал небольшой хак компонента — Пользователи. Теперь всё работает без конструктора форм.
Начал с правки файла шаблон/components/com_users_edit_profile.tpl. Тут создал поле для ввода, по образу и
подобию соседних полей.

  1.  
  2. <div id="contacts">
  3. <table width="100%" border="0" cellspacing="0" cellpadding="5">
  4. <tr>
  5. <td width="300" valign="top">
  6. <strong>E-mail:</strong><br />
  7. <span class="usr_edithint">{$LANG.REALY_ADRESS_EMAIL}</span>
  8. </td>
  9. <td valign="top">
  10. <input name="email" type="text" class="text-input" id="email" style="width:300px" value="{$usr.email}"/>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td valign="top"><strong>{$LANG.NUMBER_ICQ} :</strong></td>
  15. <td valign="top"><input name="icq" class="text-input" type="text" id="icq" style="width:300px" value="{$usr.icq}"/></td>
  16. </tr>
  17. <tr>
  18. <td valign="top"><strong>{$LANG.GOOGLE_PLUS} :</strong><br /><span class="usr_edithint">{$LANG.GOOGLE_PLUS_TEXT}</span></td>
  19. <td valign="top"><input name="g_plus" class="text-input" type="text" id="g_plus" style="width:300px" value="{$usr.g_plus}"/></td>
  20. </tr>
  21. </table>
  22. </div>
  23.  
  24.  
Далее занялся определением места где выводить информацию. Для этого правил файл шаблон/components/com_users_profile.tpl

  1.  
  2. {if $usr.showicq && $usr.icq}
  3. <div class="field">
  4. <div class="title">ICQ:</div>
  5. <div class="value">{$usr.icq}</div>
  6. </div>
  7. {/if}
  8.  
  9. {if $usr.g_plus}
  10. <div class="field">
  11. <div class="title">{$LANG.GOOGLE_PLUS} :</div>
  12. <div class="value"><a href="https://plus.google.com/u/0/{$usr.g_plus}/about" rel="me" target="_blank">{$LANG.GOOGLE_PLUS_PAGE}</a></div>
  13. </div>
  14. {/if}
  15.  
Дальше пошёл в языковой файл languages/ru/components/users.php и добавил следующие константы:

  1.  
  2. $_LANG['GOOGLE_PLUS'] ='Google+';
  3. $_LANG['GOOGLE_PLUS_PAGE'] ='Моя страница Google+';
  4. $_LANG['GOOGLE_PLUS_TEXT'] ='Вводите только id страницы. <br />Например: 105434015661921271677';
  5.  
  6.  
Далее выполнил запрос в таблице cms_user_profiles БД и добавил поле g_plus

  1. ALTER TABLE cms_user_profiles ADD g_plus VARCHAR(30) NOT NULL;
Теперь настала пора настроить запись первым правленым файлом в БД и вытаскивать полученную инфу на страницу профиля. Для этого стал изучать файлы components/users/frontend.php и components/users/model.php

В components/users/frontend.php между 250 и 259 строками написал:
  1. $g_plus = cmsCore::request('g_plus', 'str');
далее в запрсе к БД, начинаеется он в районе 282 строки, добавил обращение к полю g_plus таблицы cms_user_profiles. В итоге получил следующий вид:
  1.  
  2. $sql = "UPDATE cms_user_profiles
  3. SET city = '$city',
  4. description = '$description',
  5. g_plus = '$g_plus',
  6. showmail='$showmail',
  7. showbirth='$showbirth',
  8. showicq='$showicq',
  9. allow_who='$allow_who',
  10. signature='$signature',
  11. signature_html='$signature_html',
  12. gender='$gender',
  13. formsdata='$formsdata',
  14. email_newmsg='$email_newmsg',
  15. cm_subscribe='$cm_subscribe'
  16. WHERE user_id = '$id'";
  17. $inDB->query($sql) ;
  18.  
  19.  
Далее в components/users/model.php на 229 строке начинается запрос к БД. В него я добавил p.g_plus,
. Получилось так(239 стр.):
  1. p.city, p.karma, p.imageurl, p.g_plus,
Также я поступил и с запросом начинающемся на 313 строке. p.g_plus, добавил в конец 327 строки.

В итоге я получил такую картину:


и поле для добавления:


Возможно есть и более элегантный вариант решения, НО Я НЕ ПРОГРАММИСТ, поэтому я его не знаю.
И в связи с этим прошу не очень сильно меня пинать.
#8 Микроразметка Schema.org для InstantCms 13 ноября 2012 в 21:03


А как для рецептов под гугл и яндекс сделать снипет?!

Daze77

Наверное стоит начать с изучения следующих интернет ресурсов:
ruschema.org/Product и help.yandex.ru/webmaster/?id=1122752

и именно по рецептам help.yandex.ru/webmaster/?id=1123205
#9 Микроразметка Schema.org для InstantCms 13 ноября 2012 в 20:52


То есть для подключения профиля Google+ нужно ввести ссылку на профиль

AlexSF
Подскажите, какого вида должна быть ссылка на профиль?
  1. https://plus.google.com/u/0/111517844453900713025
Как проверить работоспособность?

sotastroy
Да ссыль должна быть такой — plus.google.com/u/0/105434015661921271662/about

При проверке на www.google.com/webmasters/tools/richsnippets получится примерно так:
#12 Проблема с устанавливаемыми модулями на InstantCMS 1.10 3 ноября 2012 в 15:41
Полностью перезалил папку admin, но безрезультатно.

С установленными по умолчанию модулями проблем нету.
Интересно другое, на сайте который прошел миграцию всё нормально.

попробую установить ещё одну чистую instant 1.10 посмотреть там
#1 Проблема с устанавливаемыми модулями на InstantCMS 1.10 3 ноября 2012 в 14:21
Пытаюсь на чистую InstantCMS 1.10 установить модули.
Устанавливаются.
Но на странице их настроек нет кнопки конфигурации.
Покажу на скриншотах. Как было и также должно быть:


Но при установке на чистую 1,10 получаю такое:


Как решить такую проблемку
#15 В Джумле кто-нибудь шарит? 20 сентября 2012 в 18:55
Man, А в "Общих настройках сайта" не смотрел? как оно в J1.5 уже не помню, второй год с ней не работаю, а в 2,5 так:


Короче, удалил вот эту строчку
Код PHP:
$this->setTitle($mainframe->getCfg('sitename').' — '.$this->getTitle());
из config.php и все заработало. Она там явно лишняя была.

есть ещё и такой файл \libraries\joomla\document\html\renderer\head.php. В нём и вызывается та переменная которую ты удалил. А енто чревато ошибками РНР и дополнительными тормозами.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.