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

Sergey1984

  • Захожу иногда
  • 51
  • 0 / 0
Параметры системы:
Joomla 1.5.18
Шаблон: gk mystore
Исследуемый модуль VirtueMart product picker.
Задача состоит в следующем:
Данный модуль выводит фильтр товаров по типам (цвет, размер и т.д), соответственно к ссылке добавляется много параметров типа product_type. Гугль благодаря этому фильтру раздул мой сайт с 1200 страниц до 75 000. Использование noindex nofollow неприемлемо, т.к вес на данные ссылки не передается, а попросту теряется. Необходимо выводить данный модуль через jquery (так чтобы спрятать от индексации). Прочитал статью http://seodiz.ru/hide-content, но как это реализовать до конца не понял, jquery подключил, но где прописать вывод именно этого модуля в заданном меню и заданной позиции не знаю.
Кто подскажет?
*

Uman

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
1) Нужно найти исходный код вашего модуля в файлах сайта и скопировать его в отдельный файл.php, залив его в любое место на сервере через ftp-клиент.
2) Уже средствами CMS подключаем этот файл, а значит и его содержимое.
Для этого как обычно создаём новый "модуль HTML-код" в нем пишем <div id="liuboe-imia, к которому будем привязывать файл.php"></div> посредством jQuery.
3) В шаблоне сайта в секции <head></head> пишем:

<script type="text/javascript">
$(document).ready(function() {
$('#liuboe-imia').load('ПУТЬ_К_ФАЙЛУ/файл.php');
});
</script>

 ну в общем всё как в той инструкции. Готово!

В каком месте, на каких страницах выводить модуль - это уже всё средствами CMS, работаем как с обычными модулями.
Кстати, даже если вы всё сделаете правильно, не факт, что всё заработает, так как этот способ не гарантирует 100%-ю совместимость с другими скриптами. Поэтому есть смысл обратиться к специалисту и сделать всё красиво, за деньги.
« Последнее редактирование: 26.09.2012, 01:40:42 от Uman »
*

Sergey1984

  • Захожу иногда
  • 51
  • 0 / 0
Спасибо за ответ.
Но непонятен один момент:
Цитировать
создаём новый "модуль HTML-код" в нем пишем <div id="liuboe-imia, к которому будем привязывать файл.php"></div> посредством jQuery.
- какое расширение файла модуля должно быть - HTML? Мой модуль состоит из файлов: mod_vm_product_picker.php, mod_vm_product_picker.xml, index.html (с содержанием <html><body bgcolor="#FFFFFF"></body></html>) и папки с файлами стилей CSS. А как привязать файл.php  к этому модулю?
Если можно немножко подробнее.
Заранее благодарен.
*

Uman

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
В вашем случае никакой файл создавать уже не надо. Вместо этого укажите путь в папку с вашем модулем к файлу mod_vm_product_picker.php, тогда получится вот так:

<script type="text/javascript">
$(document).ready(function() {
$('#liuboe-imia').load('ПУТЬ_К_ФАЙЛУ/mod_vm_product_picker.php');
});
</script>

mod_vm_product_picker.xml, index.html остаются в той же папке, значит всё должно работать правильно.

P.S.

Цитировать
- какое расширение файла модуля должно быть - HTML?
Если вам нужно создать собственный модуль с произвольным кодом, то неважно в каком формате будет файл с содержимым этого модуля.
В моём примере использую формат .php, потому что люблю этот формат больше, он мне привычен, если бы сохранил файл.php в формате .html, то получился бы файл.html и путь в <head></head> уже бы выглядел так:

<script type="text/javascript">
$(document).ready(function() {
$('#liuboe-imia').load('ПУТЬ_К_ФАЙЛУ/файл.html');
});
</script>


Цитировать
А как привязать файл.php  к этому модулю?
В вашем случае файл.php уже есть в лице mod_vm_product_picker.php, просто берите и подставляйте в инутрукцию его, не усложняя себе жизнь, а файл.php вам уже не нужен :)
« Последнее редактирование: 26.09.2012, 16:11:02 от Uman »
*

Sergey1984

  • Захожу иногда
  • 51
  • 0 / 0
Никак не получается.
Пробовал так (правда на localhost может из-за этого не получается?):
Код
<script type="text/javascript">
$(document).ready(function() {
$('#hidden').load('new/modules/mod_vm_product_picker/mod_vm_product_picker.php');
});
</script>
Если модуль включен в админке, то соответственно он выводится как обычно, если отключен, то посредством jquery он не выводится.
Попробовал сделать так:
1. Сделал и установил модуль выводящий пустой div:
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
css
*/

global $mosConfig_absolute_path, $vm_mainframe, $sess;
?>
<div id="hidden"></div>
По задумке в этом модуле я в админке ставлю позицию и пункт меню для где он должен отображаться. Получается сам div отображается, а его содержимое jquery не подгружает.
В чем ошибка? Долбусь вторые сутки.
Ниже приведу сокращенный код страницы (может jquery не там установлен, или не в том месте прописан скрипт вызова):
Код
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
 </style>
  <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <script type="text/javascript" src="/plugins/system/jqueryintegrator/jquery.noconflict.js"></script>
  <script type="text/javascript" src="/media/system/js/mootools.js"></script>
  <script type="text/javascript" src="http://new/templates/gk_mystore/js/domready_fix.js"></script>
  <script type="text/javascript" src="http://new/modules/mod_joom_rotator_v1/script/_class.noobSlide.js"></script>
  <script type="text/javascript" src="/modules/mod_flipphoto_pro/swfobject.js"></script>
  <script type="text/javascript" src="/modules/mod_flipphoto_pro/js/flashscript.js"></script>
  <script src="http://new/components/com_virtuemart/fetchscript.php?gzip=0&amp;subdir[0]=/themes/default&amp;file[0]=theme.js&amp;subdir[1]=/js&amp;file[1]=sleight.js&amp;subdir[2]=/js/mootools&amp;file[2]=mootools-release-1.11.js&amp;subdir[3]=/js/mootools&amp;file[3]=mooPrompt.js" type="text/javascript"></script>
  <script type="text/javascript">var cart_title = "Корзина";var ok_lbl="Продолжить";var cancel_lbl="Отменить";var notice_lbl="Уведомление";var live_site="http://new";</script>
  <link href="http://new/components/com_virtuemart/fetchscript.php?gzip=0&amp;subdir[0]=/themes/default&amp;file[0]=theme.css&amp;subdir[1]=/js/mootools&amp;file[1]=mooPrompt.css" type="text/css" rel="stylesheet" />




<link rel="stylesheet" href="http://new/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/addons.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/layout.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/template.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/joomla.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/gk_stuff.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/vm/vm_major.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/vm/vm_gk_flypage.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/vm/browse_notables.css" type="text/css" />
<link rel="stylesheet" href="http://new/templates/gk_mystore/css/css3.css" type="text/css" /><!--[if lt IE 8.0]><link rel="stylesheet" href="http://new/templates/gk_mystore/css/ie.css" type="text/css" /><![endif]-->
<!--[if IE 8.0]><link rel="stylesheet" href="http://new/templates/gk_mystore/css/ie8.css" type="text/css" /><![endif]-->
<!--[if IE 7.0]><style>.clearfix { display: inline-block; } /* IE7xhtml*/</style><![endif]-->

<script type="text/javascript">
var siteurl='http://new/';
var tmplurl='http://new/templates/gk_mystore';
</script>

<script language="javascript" type="text/javascript" src="http://new/templates/gk_mystore/js/gk.script.js"></script>
<link href="http://new/templates/gk_mystore/css/menu/moo.css" rel="stylesheet" type="text/css" /><script src="http://new/templates/gk_mystore/js/menu/moo.js" language="javascript" type="text/javascript"></script>

</style>
<script type="text/javascript">
$(document).ready(function() {
$('#hidden').load('modules/mod_vm_product_picker/mod_vm_product_picker.php');
});
</script>
</head>
*

Uman

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Мне кажется, ты немного неправильно подключил библиотеку jQuery.

1) В <head></head> замени эту строчку: <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
на эту: <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>


2) Ещё в коде стоит 2 непонятных </style>, которые надо удалить, не знаю влияют ли они.


Смотри, если и на этот раз не получится, тогда на минутку замени весь код модуля mod_vm_product_picker.php на любой html-код, чтобы проверить подключается ли модуль вообще.
Если подключается, значит проблема в том, что данный скрипт модуля не совместим с этим способом, но будем надеяться на лучшее ::)
« Последнее редактирование: 27.09.2012, 21:16:47 от Uman »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Проще наверно вернутся к первому посту и закрыть ссылки в robots.txt от индексации. А то глядишь у пользователя js окажется отключенным
*

Sergey1984

  • Захожу иногда
  • 51
  • 0 / 0
Ссылки уже отключены, но вес на них все равно передается, т.е соответственно на нужные страницы веса передается намного меньше.
*

Sergey1984

  • Захожу иногда
  • 51
  • 0 / 0
Мне кажется, ты немного неправильно подключил библиотеку jQuery.

1) В <head></head> замени эту строчку: <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
на эту: <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>


2) Ещё в коде стоит 2 непонятных </style>, которые надо удалить, не знаю влияют ли они.


Смотри, если и на этот раз не получится, тогда на минутку замени весь код модуля mod_vm_product_picker.php на любой html-код, чтобы проверить подключается ли модуль вообще.
Если подключается, значит проблема в том, что данный скрипт модуля не совместим с этим способом, но будем надеяться на лучшее ::)

Все попробовал, к сожалению ничего не получилось.
*

Uman

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Ссылки уже отключены, но вес на них все равно передается, т.е соответственно на нужные страницы веса передается намного меньше.
Да это так, если речь идёт о rel="nofollow", то страница на которой прописана ссылка свой вес не передаёт, но теряет.

Через robotx.txt закрывается страница, но не модуль, поэтому тоже отпадает.

1) Как вариант можно в шаблоне модуля закрыть весь код тегом <noindex></noindex>, но работает способ только для отечественных поисковиков: Яндекса, Рамблера и т.д.

2) Не знаю подойдёт ли вам, но закрыть от индексации можно ещё всю страницу(ы), на которой установлен модуль.
Для этого в <head> прописываем <meta name="robots" content="noindex,nofollow"> Способ подходит для всех поисковиков.
Но есть проблема. Прописывается эта <meta> в шаблоне (а у Joomla один шаблон на весь сайт), поэтому обойти это ограничение можно подключив расширение Tag-Meta

В теории можно ещё иначе выполнить 2-й вариант без помощи расширения.
Ваш модуль есть на определённых страницах - так? А в Joomla для каждой страницы можно указывать свой шаблон!

1) Поэтому копируем шаблон и в уже скопированном прописываем <meta name="robots" content="noindex,nofollow">, заливаем его под другим именем через FTP-клиент в папку с шаблонами.

2) Устанавливаем шаблон:
Админка Joomla => Расширения => менеджер расширений => поиск => установить наш новый шаблон.

3) Крепим шаблон к нужным страницам:
Админка Joomla => Расширения => Менеджер шаблонов => заходим в скопированный шаблон (в котором уже прописан <meta ...noindex,nofollow">) => и крепим его к нужным страницам с модулем. Готово!

Попробуй так, должно сработать :)
« Последнее редактирование: 28.09.2012, 17:53:37 от Uman »
*

sabnok

  • Захожу иногда
  • 126
  • 1 / 0
1) Нужно найти исходный код вашего модуля в файлах сайта и скопировать его в отдельный файл.php, залив его в любое место на сервере через ftp-клиент.
2) Уже средствами CMS подключаем этот файл, а значит и его содержимое.
Для этого как обычно создаём новый "модуль HTML-код" в нем пишем <div id="liuboe-imia, к которому будем привязывать файл.php"></div> посредством jQuery.
3) В шаблоне сайта в секции <head></head> пишем:

<script type="text/javascript">
$(document).ready(function() {
$('#liuboe-imia').load('ПУТЬ_К_ФАЙЛУ/файл.php');
});
</script>

 ну в общем всё как в той инструкции. Готово!

Сделал файл.html и вывел его через скрипт, все норм выводится. Но как вывести конкретное меню через файл.php, например меню в сайдбаре? Какой код надо вставить в подгружаемый файл что бы вывести конкретный модуль меню.
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Сделал файл.html и вывел его через скрипт, все норм выводится. Но как вывести конкретное меню через файл.php, например меню в сайдбаре? Какой код надо вставить в подгружаемый файл что бы вывести конкретный модуль меню.
Вам надо не файл подгружать, а позицию для вывода модуля, и в ней модуль выводить
*

sabnok

  • Захожу иногда
  • 126
  • 1 / 0
и как же эту позицию вывести?  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка - JHTMLBehavior::jquery not supported

Автор ProkopChamp

Ответов: 3
Просмотров: 2605
Последний ответ 21.06.2020, 13:46:13
от draff
Не отображаются keywords и description, прописанные через админку

Автор Apple_pie

Ответов: 5
Просмотров: 3007
Последний ответ 13.07.2016, 08:19:45
от Наталюся
Настройка модуля голосования

Автор rsh53

Ответов: 2
Просмотров: 1289
Последний ответ 11.01.2016, 12:12:40
от rsh53
Авторизация через Loginza - где взять Widget ID

Автор Escander

Ответов: 1
Просмотров: 2762
Последний ответ 19.11.2015, 15:33:48
от FinGuru
ReferenceError: jQuery is not defined

Автор andreyt

Ответов: 0
Просмотров: 1239
Последний ответ 25.09.2015, 14:20:49
от andreyt