Ris

Ris

+657
Репутация
3768
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Рейтинг гостям 18 июня 2015 в 01:30
Val,
Судя по всему, Ingvarruss готов на любые накрутки, лишь бы хоть кто-то голосовал. scratch

Видел много сайтов, где можно голосовать гостям. Всякие конкурсы на лучшую фотографию ребенка. Самые накрутки с использованием тора и массовых рассылок по соцсетям.
Не видел ни одного сайта на инстанте, где можно голосовать гостям. Возможно плохо искал.

Что бы сделал я в такой ситуации:
1. Максимально упростил бы регистрацию. Только имейл и пароль. Отключил бы капчу и подтверждение мыла.
2. Отобрал бы у новичков все права, кроме голосования.
3. Перевод новичков в пользователи только после подтверждения мыла и нормального заполнения профиля.
#2 [ЕСТЬ РЕШЕНИЕ] Рейтинг гостям 18 июня 2015 в 01:00
Val,
Если речь пошла о голосовании гостями, то о защите от накруток речи уже быть не может.

Регистрировать айпи голосовавшего и не давать голосовать дважды с одного айпи?
#3 [ЕСТЬ РЕШЕНИЕ] Рейтинг гостям 18 июня 2015 в 00:48
Ingvarruss,
Отмените проверку на зарегистрированность перед голосованием.
О какой ветке Инстанта идет речь?
#4 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 16 июня 2015 в 21:14
Lora,

Ну, если закрытие темы чем-то кому-то поможет, закрываю тему. smile
#5 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 16 июня 2015 в 20:19
Lora,

Увы, это не модуль, а просто форма вписанная прямо в template.php шаблона вот так:


  1. <form class="form-wrapper" action="/search" method="GET" enctype="multipart/form-data" style="clear:both">
  2. <input id="search" name="query" placeholder="Поиск на сайте..." required="" type="text" >
  3. <input value="Поиск" id="submit" type="submit" onclick="document.searchform.submit()"/">
  4. </form>
В общем не придумал ничего умнее, кроме как добавить туда скрытое поле ввода типа компонента для поиска:


  1. <form class="form-wrapper" action="/search" method="GET" enctype="multipart/form-data" style="clear:both">
  2. <input id="search" name="query" placeholder="Поиск на сайте..." required="" type="text" >
  3. <input type="hidden" name="from_component[]" value="anec">
  4. <input value="Поиск" id="submit" type="submit" onclick="document.searchform.submit()"/">
  5. </form>
Теперь все работает как надо.
Огромное спасибо за помощь!
#6 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 16 июня 2015 в 09:17
Lora,

Сделана форма поиска на сайте.



Вот из нее ищет везде. После открытия полной формы поиска, если нажать поиск еще раз — да, ищет только там, где надо.
#7 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 15 июня 2015 в 23:57
Lora,
Спасибо, заработало!

Теперь как бы еще сделать, чтобы оно сразу из формы поиска искало только в одном компоненте.
Возможно я не слишком правильно сформулировал мысль. Мне нужно, чтобы еще из строки поиска на сайте, сначала искало только в одном компоненте, а уже потом, при желании пользователя — в остальных.

Пока чекбоксы убрались, но ищет по умолчанию везде

А вообще наверное, вместо сложной многуступенчатости поиска проще будет сделать два поиска. Один ищет только в анекдотах, а другой во всем остальном. И вместо чекбоксов сделать в шаблоне одну кнопку перехода к расширенному поиску.

Lora,
Еще раз огромное спасибо за помощь и за идею! v
#8 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 15 июня 2015 в 20:47
1.10.6
#1 [ЕСТЬ РЕШЕНИЕ] Поиск на сайте. Компоненты для поиска по умолчанию. 13 июня 2015 в 18:26
Поиск по сайту работает достаточно корректно и все, что нужно находит.
Но! Есть надобность, чтобы по умолчанию поиск производился только в одном типе контента и только потом, если пользователь расставит чекбоксы, искать в других местах.

То есть по умолчанию есть такая конфигурация:



Надо, чтобы было так:



Чтобы пользователи могли продолжить поиск в других компонентах, если им так надо.
#9 Ошибка в истории комментариев 13 июня 2015 в 15:06
Я ставил это дополнение и у меня была такая проблема.
Дело в том, что отслеживается голосование за target_id
Если в таблице cms_ratings есть голоса за разный контент, но с одинаковым id — они все будут выведены в списке проголосовавших.

Надо доработать выборку из базы следующим образом:

  1. $sql = "SELECT r.*,
  2. u.nickname as nickname,
  3. u.login as login,c.id as cid
  4.  
  5. FROM cms_ratings r
  6. LEFT JOIN cms_users c ON item_id=$target_id AND r.item_id=c.id
  7. LEFT JOIN cms_users u ON u.id = r.user_id
  8.  
  9. WHERE target = 'comment' AND item_id=$id LIMIT 20";
#10 Автоматическая генерация заголовков. 3 июня 2015 в 17:30
Разобрался.
Заголовки можно не генерировать и не засорять базу. Вместо этого можно отображать в админке сам контент, если изменить grid_content_items.php следующим образом:



  1. <?php
  2.  
  3. function grid_content_items($controller, $ctype_name=false){
  4.  
  5. $options = array(
  6. 'is_auto_init' => false,
  7. 'is_sortable' => true,
  8. 'is_filter' => true,
  9. 'is_pagination' => true,
  10. 'is_draggable' => false,
  11. 'is_selectable' => true,
  12. 'order_by' => 'id',
  13. 'order_to' => 'desc',
  14. 'show_id' => true
  15. );
  16. $columns_anec = array(
  17. 'id' => array(
  18. 'title' => 'id',
  19. 'width' => 30,
  20. 'filter' => 'exact'
  21. ),
  22. 'content' => array(
  23. 'title' => LANG_TITLE,
  24. 'href' => href_to($ctype_name, 'edit', '{id}') . '?back=' . href_to($controller->name, 'content'),
  25. 'filter' => 'like'
  26. ),
  27. 'date_pub' => array(
  28. 'title' => LANG_DATE,
  29. 'width' => 80,
  30. 'handler' => function($value, $item){
  31. return html_date($value);
  32. }
  33. ),
  34. 'is_pub' => array(
  35. 'title' => LANG_ON,
  36. 'width' => 40,
  37. 'flag' => true,
  38. 'flag_toggle' => href_to($controller->name, 'content', array('item_toggle', $ctype_name, '{id}'))
  39. ),
  40. 'user_nickname' => array(
  41. 'title' => LANG_AUTHOR,
  42. 'href' => href_to('users', '{user_id}'),
  43. 'order_by' => 'u.nickname',
  44. ),
  45. );
  46. $columns = array(
  47. 'id' => array(
  48. 'title' => 'id',
  49. 'width' => 30,
  50. 'filter' => 'exact'
  51. ),
  52. 'title' => array(
  53. 'title' => LANG_TITLE,
  54. 'href' => href_to($ctype_name, 'edit', '{id}') . '?back=' . href_to($controller->name, 'content'),
  55. 'filter' => 'like'
  56. ),
  57. 'date_pub' => array(
  58. 'title' => LANG_DATE,
  59. 'width' => 80,
  60. 'handler' => function($value, $item){
  61. return html_date($value);
  62. }
  63. ),
  64. 'is_pub' => array(
  65. 'title' => LANG_ON,
  66. 'width' => 40,
  67. 'flag' => true,
  68. 'flag_toggle' => href_to($controller->name, 'content', array('item_toggle', $ctype_name, '{id}'))
  69. ),
  70. 'user_nickname' => array(
  71. 'title' => LANG_AUTHOR,
  72. 'href' => href_to('users', '{user_id}'),
  73. 'order_by' => 'u.nickname',
  74. ),
  75. );
  76.  
  77. $actions = array(
  78. 'title' => LANG_VIEW,
  79. 'class' => 'view',
  80. 'href' => href_to($ctype_name, '{slug}.html')
  81. ),
  82. 'title' => LANG_EDIT,
  83. 'class' => 'edit',
  84. 'href' => href_to($ctype_name, 'edit', '{id}') . '?back=' . href_to($controller->name, 'content')
  85. ),
  86. 'title' => LANG_DELETE,
  87. 'class' => 'delete',
  88. 'href' => href_to($ctype_name, 'delete', '{id}') . '?back=' . href_to($controller->name, 'content'),
  89. 'confirm' => LANG_CP_CONTENT_ITEM_DELETE_CONFIRM
  90. )
  91. );
  92. if ($ctype_name=='anec'){
  93. return array(
  94. 'options' => $options,
  95. 'columns' => $columns_anec,
  96. 'actions' => $actions
  97. );
  98. }
  99. else {
  100. return array(
  101. 'options' => $options,
  102. 'columns' => $columns,
  103. 'actions' => $actions
  104. );
  105. }
  106.  
  107. }
Теперь в админке отображается сам текс анекдотов, причем только для анекдотов. Все остальные типы контента отображаются с заголовками.

Теперь проблема следующая. Как обрезать текст анекдота в админке?
subsrt('content',0 ,40) => array(
не прокатывает…
#11 Не могу зайти в админку 28 мая 2015 в 14:12
Зарегистрируйте нового пользователя и назначьте его админом в базе (выставьте 1 в колонке is_admin группу ему назначьте "Администраторы"),
а потом под ним зайдите и пароль себе поменяйте.

Хотя… нельзя главному администратору пароль поменять. Тогда скопируйте кэш пароля этого нового юзера и вставьте в свой кэш.
#12 Hidden (не могу победить) 26 мая 2015 в 23:38

Тут не победит: тот случай когда родители не в ответе за потомков.

Олег Васильевич я

Спасибо, буду знать! v

Век живи — век учись… и дураком помрешь… smile
#13 Как добавляются поля в форму регистрации 26 мая 2015 в 22:39

Хороший подход к проблеме!

Олег Васильевич я

Это не моя проблема. smile

ТС спрашивал:

Хотя бы подскажите в каком файле шаблон формы регистрации… или форма в нескольких шаблонах?

Блицкриг

Шаблон формы регистрации com_registration.tpl
Дальше можно не мешать топикстартеру в творчестве, а Man, можно и в личку рассказать о результатах исследования.

На мой взгляд, чем больше обязательных требований при регистрации, тем меньше потенциальных пользователей через неё пройдут!
Уж лучше пусть нормальные, стабильные пользователи потом, когда освоятся, выберут нужный аватар, чем заставлять выбирать аватар в обязательном порядке.

Блицкриг,

С добавлением полей вообще проблем никаких нет.
А вот дальше возникают проблемы. Стандартный механизм добавления аватара предусматривает наличие зарегистрированного пользователя, которому добавляется этот аватар. И чтобы выбрать аватар "для никого" нужно будет запомнить этот выбор в какой-либо переменной, и лишь после нажатия кнопки "Зарегистрироваться" запустить стандартную функцию изменения аватара. Это все потребует кардинальных доработок, несравнимых с добавлением поля ввода в форме регистрации. Потребуется дать право гостям на загрузку изображений и другие не совсем правильные действия. Ведь пока кнопка не нажата, это не юзер, а все таки гость!

Может не стоит насиловать будущего пользователя, а просто редиректить его после регистрации в стандартную форму добавления аватара?
Это легко можно сделать.
#14 Удаление компонентов в InstantCMS 2.2.1 26 мая 2015 в 21:58
Loadырь,
Спасибо! Вот теперь понял.
ТС никак не обозначил, что он хочет удалить именно сторонние компоненты.

Если на то пошло, самым простым методом удаления ненужных компонентов будет именно так :

идём в базу данных в таблице controllers удаляем строку с выбранным компонентом,

Loadырь

А файлы пусть лежат. Пить-есть не просят, места много не занимают.

А уж если хочется владельцу чистоты, невинности и целомудрия, пусть заново сайт инсталлирует и установит только те компоненты и виджеты, которые необходимы.
А базу завсегда можно восстановить и отредактировать.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.