Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Выборка активных и не активных страниц через Selector

Автор atachРаздел Custom макросы

Ответов: 2
Просмотров: 2999
Последний ответ 24 Апреля 2016, 13:02:38
от atach
Вывод данных страниц разного типа данны в порядке создания

Автор SumrakrndРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 2979
Последний ответ 09 Декабря 2016, 12:55:59
от Sumrakrnd
Варианты подгрузки разных типов страниц в одном шаблоне

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 3838
Последний ответ 08 Июля 2013, 14:52:35
от admin
Вопрос по выводу дочерних страниц модуля структура

Автор shotoРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 5647
Последний ответ 07 Марта 2014, 17:34:18
от e.ioffe
Сбор информации об обновлении страниц сайта

Автор AllaVKРаздел Custom макросы

Ответов: 15
Просмотров: 10223
Последний ответ 28 Сентября 2011, 17:02:34
от AllaVK

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

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Рейтинг страниц
« : 17 Марта 2011, 09:31:02 »
Друзья как организовать рейтинг страниц.

Прочел статью на wiki umi http://wiki.umisoft.ru/Рейтинг_страниц

в принципе то что мне нужно. На определенных страницах делаю ссылки типа +1 -1 и получаестся рейтинг данной страницы.

Но вот что-то не фига этот способ не работает. :(

Смотрите вот к примеру ссылка на каталог фирм — http://www.happylipetsk.ru/catalog/car/
види там +1 -1 вот когда на них жмешь теоретически должно всплывать ява-скрипт окно с текстом что голос принят. Но такого не происходит :(



 
« Последнее редактирование: 17 Марта 2011, 09:42:07 от thefate »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #1 : 17 Марта 2011, 09:37:39 »
какая у вас версия umi&

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #2 : 17 Марта 2011, 09:42:23 »
версия 2.8

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #3 : 17 Марта 2011, 10:14:42 »
у меня все заработало, у вас на каком месте проблема? ссылки для голосования появились, при нажатии что происходит?

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #4 : 17 Марта 2011, 10:32:56 »
проблема при нажатии на +1 или -1
Не происходит никаких действий :(

Java-Скрипт куда нужно вставлять? Между тегами HEAD или же BODY?

Да и еще, это все я делаю в шаблонах новостей.

$FORMS['lastlist_item'] = <<<END

[b]<div style="float:right; font-size: 10px; color:#666;"><strong><a href="#" onclick="javascript: return rate('%id%', 0);" style="color: #b22222; font-size: 12px; padding-right:10px;">&ndash;1</a> <a href="#" onclick="javascript: return rate('%id%', 1);" style="color: #9acd32; font-size: 12px;">+1</a></strong><br />Рейтинг: %rate_sum% &nbsp;&nbsp; Голосов: %rate_voters%</div> [/b]
%data getProperty(%id%, 'anons_pic', 'news.anons.home')%
<a href="%link%" class="bigtitle">%header%</a>
<br /><span style="font-size: 12px;">%anons%</span>
</div>
<div class="comments">
<a href="%link%#comments" class="date">Комментарии (%comments countComments(%id%)%)</a> &nbsp;&nbsp;&nbsp; <a href="%link%#add_comment" class="date">Добавить комментарий</a>

END;

$FORMS['view'] = <<<END
[b]<div style="float:right; font-size: 10px; color:#666;"><strong><a href="#" onclick="javascript: return rate('%id%', 0);" style="color: #b22222; font-size: 12px; padding-right:10px;">&ndash;1</a> <a href="#" onclick="javascript: return rate('%id%', 1);" style="color: #9acd32; font-size: 12px;">+1</a></strong><br />Рейтинг: %rate_sum% &nbsp;&nbsp; Голосов: %rate_voters%</div> [/b]
<div style="clear: both; display: block; width: 100%;">
%data getProperty(%id%, 'publish_pic', 'news.view')%

%data getProperty(%id%, 'address', 'HL_data_text')%<br />
%data getProperty(%id%, 'phone', 'HL_data_text')%<br />
%data getProperty(%id%, 'site', 'HL_data_link')%
%data getProperty(%id%, 'email', 'HL_data_email')%

</div>
<br />
<div style="clear: both; display: block; width: 100%;">%content%
<img src="/images/blank.gif" alt="" style="background-color: rgb(211, 211, 211);" height="1" width="100%" /><br />
%data getProperty(%id%, 'yandexmaps', 'HL_data_text')%

%news related_links(%id%, 'HL_firm_spisok')%

%comments insert('%id%', 'HL_comment_news')%
</div>

END;

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #5 : 17 Марта 2011, 10:46:33 »
ну тогда и начнем проверять с js, если вы пользуетесь firebug или им подобными плагинами к браузерам, то наверно можете отследить рапортует ли браузер об ошибках в js коде

если не то можно идти по старинке, для начала проверти что js код подгружается на страницу, просто откройте исходный код страницы и найдите там эти функции

потом я бы проверил отзывается ли вообще функция, за комментировать все в функции rate и вставить туда alert('ggg'); чтобы точно увидеть что клик сработал

если сработал тогда идем в шаблон /tpls/vote/rate/default.tpl и проверяем какой он кодировке (желательно чтобы все шаблоны были в utf-8 кодировке, особенно если в шаблоне есть русские буквы)

скорее всего на этих шагах уже появиться дополнительная информация которая поможет решить проблему, а может и сама проблема решиться

p.s. обычно для первичной разработки я использую notepad++ (кодировку менять удобно и подсветка синтаксиса есть) и mozilla + плагин firebug который позволяет отслеживать большинство ошибок и косяков

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #6 : 17 Марта 2011, 11:30:14 »
Сделал все заново, пошагово. Заработало! :)  Спасибо!

Правда вот это как работает я так и не понял

<a href="%link%?order_filter[rate_sum]=0">%name%</a>

??
Как мне сделать чтобы новости упорядочились по рейтингу, вверху с большим рейтингом, внизу с меньшим?


*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #7 : 17 Марта 2011, 11:54:22 »
у большинства макросов выводящих список при формировании этого списка учитываются параметры адресной строки, один из таких параметров order_filter в скобках указывается имя поля по которому делается сортировка а значение может быть 0 или 1 в зависимости от того в каком направлении делать сортировку jn a>я или от я>а.

Поэтому на странице на которой работает например макрос %news lastlist()% , или просто на странице со списком новостей (так как на такой странице этот макрос автоматом заменяет макрос %content%) , или макрос %catalog getObjectList()% или и т.д. наличие параметра ?order_filter[rate_sum]=0 в адресной строке сделает так что объекты списка будут  сортированны по полю rate_sum

соответственно ссылка <a href="%link%?order_filter[rate_sum]=0">сортировать по рейтингу</a> загрузит нам страницу %link%  с параметром сортировки. обычно такие ссылки вставляются в блоки со списком (то есть не блок для оформления элемента списка, а сам блок)

Например в блок шаблона новостей lastlist_block или в шаблоне каталога в блок category_block (если хотите сортировать разделы) или в objects_block (если хотите сортировать объекты каталога)

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #8 : 17 Марта 2011, 14:34:31 »
Ясно.

Сделал, но что-то сортировка не происходит :(

http://www.happylipetsk.ru/catalog/car/?order_filter[rate_sum]=0

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #9 : 17 Марта 2011, 14:48:26 »
а у вас на сайте все новостями сделано?

просто у новостей по умолчанию сортировка по publish_date
чтобы её отменить надо при вызове макроса (опять же вы скорее всего не прописываете сам макрос он подставляется автоматом и параметры вам неку да вставить, но всеже) если вы вставите макрос и его последний параметр сделаете равным "1", то сортировка заработает (я пробовал на сортировке ?order_filter[h1]=0 , сортировка по полю h1, хотя как вы уже поняли поле можно вставить другое тот же рейтинг), должна заработать, хотя я у себя не проверил, Проверил на каталоге сортирует прекрасно, а новости не сортирует)

загодовок функции lastlist с параметрами (для наглядности)
lastlist($path = "", $template = "default", $per_page = false, $ignore_paging = false, $sDaysInterval = '', $bSkipOrderByTime = false)
« Последнее редактирование: 17 Марта 2011, 14:51:22 от admin »

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #10 : 17 Марта 2011, 15:30:12 »
попробовал сделать так.

К примеру берем страницу http://www.happylipetsk.ru/catalog/photo_video/

Данный список формируется следующим образом.

%news lastlist(%id%, 'HL_firm_spisok', 100)%

Я просто не пойму как этот параметр $bSkipOrderByTime = false подставить в вышеописанный макрос?

Пробывал сделать так %news lastlist(%id%, 'HL_firm_spisok', 100, 1)%

сортировка все равно не работает :(

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #11 : 17 Марта 2011, 15:33:32 »
Сделал :)))

Вызов макроса сделал следующим образом

%news lastlist(%id%, 'HL_firm_spisok', 100, 0, '', 1)%

Блин автоматом возникает вопрос следующий… а как сделать чтобы новости уже автоматом по рейтингу выстраивали когда заходишь на страницу?
« Последнее редактирование: 17 Марта 2011, 15:36:11 от thefate »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #12 : 17 Марта 2011, 16:00:55 »
либо подправить макрос вывода новостей, либо сделать свой вывод новостей используя макрос data doSelection он достаточно гибко позволяет делать выборки с сортировками, с условиями и по определенными разделам\типам данных и т.д.

я бы изменил макрос вывода новостей ( то есть скопировал бы его и поменял немного) а потом сделал бы подмену макросу %content чтобы он автоматически определял  что собираются выводиться новости и подставлял этот кастомный макрос, но для тебя будет проще сделать data doSelection

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Рейтинг страниц
« Ответ #13 : 17 Марта 2011, 16:46:09 »
Спасибо.

А такой момент не пойму опять. Куда записываются данные при голосовании? количество проголосовших и рейтинг для каждой страницы? К примеру чтобы отредактировать рейтинг вручную.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Рейтинг страниц
« Ответ #14 : 17 Марта 2011, 22:27:27 »
если вы зайдете в шаблоны данных и откроете самый родительский тип страниц "Раздел сайта", то увидите у него эти поля (они невидимые и выводятся серым, а при редактировании страницы вообще не выводятся)

Если хотите их сделать видимыми в админке допишите на странице редактирования этого типа данных параметр ?skip-lock=1 и у вас снимутся ограничения на редактирование системных полей
(!!! но будьте осторожны при удалении или переименовывании английского варианта имени система может работать нестабильно или вообще не работат.... ну на то они и системные)

когда появиться возможность редактировать системные поля просто проставте галочки "видимое" у этих полей и они должны появиться в админке. Да, и не забудьте у группы тоже проставить галочку "видимое"