ideasdigger

ideasdigger

hoho)
+328
Репутация
1002
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Убрать таблицу (обводку) из auth 20 января 2020 в 19:51

в какой файл? theme-gui?

@fLeX
да, можешь вставить в конец или можешь найти там это свойство и заменить
#2 [ЕСТЬ РЕШЕНИЕ] Убрать таблицу (обводку) из auth 20 января 2020 в 19:40
в сss добавить
  1.  
  2. form fieldset {
  3. padding: 0;
  4. border: 0;
  5. margin-bottom: 12px;
  6. }
  7.  
#3 [ЕСТЬ РЕШЕНИЕ] На странице Регистрации изменить вывод Группы 15 ноября 2019 в 23:36

Если указать Группе пользователей "Разрешить вступление при регистрации",
то при Регистрации выбор группы выводиться как select (выпадающий список),
а как его заменить на checkbox ?

@Aleksey24
скорее заменить на checkbox radio (без множественного выбора)

но так такового в системе radio нет, есть select с возможностью включить checkbox но только в множественном варианте, для выбора группы вариант не пойдёт, есть флаг но без передачи массива значений

по этому:
создать файл в \system\fields с именем radio.php со следующим содержимым (это копия list.php с удалёнными данными на глазок):
  1.  
  2. <?php
  3. class fieldRadio extends cmsFormField {
  4.  
  5. public $title = 'Радио список';
  6. public $sql = 'int NULL DEFAULT NULL';
  7. public $filter_type = 'int';
  8. public $filter_hint = LANG_PARSER_LIST_FILTER_HINT;
  9. public $var_type = 'string';
  10. public $native_tag = false;
  11. public $dynamic_list = false;
  12.  
  13. public function getOptions(){
  14. return array();
  15. }
  16.  
  17. public function getFilterInput($value) {
  18.  
  19. $items = $this->getListItems(false);
  20. return html_select($this->name, $items, $value);
  21.  
  22. }
  23.  
  24. public function getRules() {
  25.  
  26. if($this->item){
  27. $this->rules[] = array('array_key', $this->getListItems());
  28. }
  29.  
  30. return $this->rules;
  31.  
  32. }
  33.  
  34. public function getStringValue($value){
  35.  
  36. $items = $this->getListItems();
  37. $item = array();
  38.  
  39. if(!is_array($value)){
  40. $value = array($value);
  41. }
  42.  
  43. foreach ($value as $val) {
  44. if (isset($items[$val])) { $item[] = $items[$val]; }
  45. }
  46.  
  47. return implode(', ', $item);
  48.  
  49. }
  50.  
  51. public function parse($value){
  52.  
  53. $items = $this->getListItems();
  54. $item = '';
  55.  
  56. if (isset($items[$value])) { $item = $items[$value]; }
  57.  
  58. return html($item, false);
  59.  
  60. }
  61.  
  62. public function getListItems($show_empty_value = true){
  63.  
  64. $items = array();
  65.  
  66. if (isset($this->items)){
  67.  
  68. $items = $this->items;
  69.  
  70. } else if (isset($this->generator)) {
  71.  
  72. $generator = $this->generator;
  73. $items = $generator($this->item);
  74.  
  75. } else if ($this->hasDefaultValue()) {
  76.  
  77. $items = ($show_empty_value ? array('' => '') : array()) + $this->parseListItems($this->getDefaultValue());
  78.  
  79. }
  80.  
  81. return $items;
  82.  
  83. }
  84.  
  85. public function getListValuesItems(){
  86.  
  87. $items = array();
  88.  
  89. if (isset($this->value_items)){
  90.  
  91. $items = $this->value_items;
  92.  
  93. } else if (isset($this->values_generator)) {
  94.  
  95. $generator = $this->values_generator;
  96. $items = $generator($this->item);
  97.  
  98. }
  99.  
  100. return $items;
  101.  
  102. }
  103.  
  104. public function parseListItems($string){
  105. return string_explode_list($string);
  106. }
  107.  
  108. public function getDefaultVarType($is_filter=false) {
  109.  
  110. return parent::getDefaultVarType($is_filter);
  111.  
  112. }
  113.  
  114. public function applyFilter($model, $value) {
  115.  
  116. if (!is_array($value)){
  117.  
  118. return $model->filterEqual($this->name, $value);
  119.  
  120. } else {
  121.  
  122. return $model->filterIn($this->name, $value);
  123.  
  124. }
  125.  
  126. }
  127.  
  128. public function getInput($value){
  129.  
  130. if($this->getDefaultVarType() === 'array' && $value && !is_array($value)){
  131. $value = cmsModel::yamlToArray($value);
  132. }
  133.  
  134. $this->data['items'] = $this->getListItems();
  135. $this->data['dom_attr'] = array('id' => $this->id);
  136. $this->data['is_ns_value_items'] = false;
  137.  
  138. if($this->dynamic_list){
  139. $this->data['value_items'] = $this->getListValuesItems();
  140. $first_value_item = reset($this->data['value_items']);
  141. $this->data['is_ns_value_items'] = is_array($first_value_item);
  142. $this->class = 'list_dynamic';
  143. if(!$value){ $value = new stdClass(); }
  144. if(!isset($this->multiple_keys)){ $this->multiple_keys = new stdClass(); }
  145. }
  146.  
  147. return parent::getInput($value);
  148.  
  149. }
  150.  
  151. }
  152.  
в папке \templates\default\assets\fields\ создать файл radio.tpl.php со следующим содержимым
  1.  
  2. <?php if ($field->title) { ?><label for="<?php echo $field->id; ?>"><?php echo $field->title; ?></label><?php } ?>
  3. <?php
  4. foreach ($field->data['items'] as $key => $val) {
  5. $checked = false;
  6. if($key == $value) {$checked = true;}
  7. echo html_radio($field->element_name, $checked, $key, $field->data['dom_attr']).''.$val.'<br>';
  8. }
  9. ?>
  10.  
далее открыть \system\controllers\auth\frontend.php найти участок в коде отмеченный на скриншоте

заменить fieldList на fieldRadio, что бы получилось так


и будет в итоге так
#4 При создании типа контента обрезается УРЛ до .html 13 ноября 2019 в 20:36



А кнопка сабмит стандартная внизу или в виджете меню действий? У меня бывало даже, что поле изображение очищалось при нажатии на кнопку в меню действий. Она же там через js работает. А еще можете смержить ваш файл /system/controllers/content/frontend.php с чистым

islyaeFF

проверил. он оригинальный(

Def
Заголовок не отключён?
#5 [ЕСТЬ РЕШЕНИЕ] Как можно подключить свой класс к хуку? 8 октября 2019 в 11:43


в итоге я пока что так подключил
cmsCore::includeFile( 'system/my.class.php' );

Рачей
github.com/instantsoft/icms2/blob/10f893ab0d6f3d5af22fe7c8389d906d7a11d125/system/core/core.php#L233
#6 Подписка на тарифный план 4 октября 2019 в 20:07

Это понятно, но мне необходимо чтобы после определенного срока, пользователь в автоматическом режиме переводился обратно в простые пользователи. А так предется в ручном режиме делать, а если он не один?

fincheck
можно хуком на событие регистрации пользователя попробовать эмулировать покупку подписки без списания, а биллинг сам снимет по истечению срока (он же снимает?))
#7 Лента событий (addons) XSS 12 сентября 2019 в 11:14

ideasdigger, а написать автору в личку нельзя было? Тихонько. А после исправления уже принять лавры, если так хочется потешить себя.
ideasdigger:
когда в каталог добавляют разработки куда смотрят?!
Мы не тестируем добавляемые дополнения в каталог.

Fuze
можно было конечно и в лс скинуть и продолжать в том же духе сливать в лс, но ситуация в целом хуже чем кажется, таких компонентов в каталоге достаточно и в итоге у людей за кровный кеш вместо сайта решето, это ведь не нормально? (боюсь предположить что под ионкубом продают)
а без огласки на такие проблемы, эффекта решение глобально по моему мнению нет, а лавры мне не нужны, просто сколько тут нахожусь удивляюсь что в каталог выкладывают, не осознавая ответственность, клепая как пирожки

ну а как говорится критикуешь = предлагает, предлагаю ввести роялти (с размещения (фикс допустим ) и продаж (%) в сторону площадки) и всё таки реализовать автоматизацию покупки
#1 Лента событий (addons) XSS 12 сентября 2019 в 10:05
Доброе утро инстанчане), клиент попросил немного доработать ленту в итоге, рекомендую всем покупателям, instantcms.ru/addons/feed-for-instantcms2.html отключить ленту (когда в каталог добавляют разработки куда смотрят?!))!), до внесения исправлений автора и выпуска обновы, в компоненте активная xss, немного сканирования и написание небольшой автоматизации и спокойно можно трафик с пака ресурсов покупателей слить на другой ресурс или скрытно подгрузить эксплоит, тем самым прогрузить зловред, сам способ вызова сюда не буду кидать, просто предупреждаю, способ вызова видео скину автору, если сам не догадывается.
#8 Копирование типа контента 4 сентября 2019 в 03:44
можно и данные вручную, в таблице cms_content_types, скопировать нужный запись типа контента, указав новое значение колонки name, а далее копию всех таблиц копируемого типа контента
cms_con_{значение_name}
cms_con_{значение_name}_cats
cms_con_{значение_name}_cats_bind
cms_con_{значение_name}_fields
cms_con_{значение_name}_props
cms_con_{значение_name}_props_bind
cms_con_{значение_name}_props_values
#9 Мультимагазин. Магазин, где каждый пользователь может стать продавцом 2 сентября 2019 в 14:50

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

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

В противном случае, если такого нет, то первым этапом должна быть разработка бизнес-плана. Хотя бы приблизительный расчет какие нужны инвестиции на раскрутку проекта. В мультимагазин должны прийти не только продавцы, но и покупатели. Понадобится очень широкая рекламная кампания, трудность которой будет в том, чтобы убедить людей, почему продавать и покупать лучше именно в этом мультимагазине, а не на привычных для всех площадках, которые существуют уже очень давно.

aloevera
тут изначально речь о складчике, о возможности заказать и получить продукт может и с базовыми потребностями (нужными большинству) но с более минимальным порогом входа, а то о чём вы написали имеет совсем другой подход, другие деньги а по теме вот например предположим есть портал kursk.com для примера, 12к в сутки людей, добавил туда компонент в виде мультивитрины местной, сделал бы рубрикатор /eda и разместил бы там местных доставщиков, с отчислением за заказ, ну и пару ещё каких либо разделов, /moda & /avto & /deti и т.д. курск пицца только пиццы для полу миллионника, партнёры бы могли бы свою аудиторию подключить, что + к источнику трафика как и им так и мне, есть это бы не просило а + довало бы в любом случае (+ вариант снимать ежемесячную роялити вполне пригодный) чем не реально?

Экономический и маркетинговый расчет может сформировать более реалистичный взгляд на идею проекта. Без такого бизнес-плана начинания на 99% обречены на провал.

aloevera
да и кто не даёт, имея ресурс сначала найти заинтересованных людей? а потом уже реализовывать?

/blogs/blog-irbis/komponent-sovmestnye-pokupki-4412.html
#10 Напоминаение о событии юзеру 11 августа 2019 в 22:02


а отправку уведомлений, можно реализовать через крон задачу, делать выборку из таблицы с записями, с учётом этого чекбокса напоминания и по дате текущей, как только дата наступила, отправлять письмо юзеру

ideasdigger

Здравствуйте. Спасибо за наводку. По поводу отправки уведомлений я думаю не справлюсь. Сможете помочь в этом? Если это платно то сколько будет стоить, я подготовлю бюджет тогда).

Заралик
Да можно конечно, только нужно более подробно тогда обсудить вашу задачу, можно например в скайпе или телеграмме или любым другим удобным способом, там я скажу более точно сколько выйдет работы, скайп и телеграм скинул в лс
#11 Напоминаение о событии юзеру 11 августа 2019 в 19:59

Привет.
Есть ли подобное решение? К примеру создаем тип записи "статьи". Юзер при добавлении статьи, включает опцию "напомнить мне" -к примеру отредактировать статью 10 мая.
И 10 мая ему на почту приходит уведомление "отредактировать статью".

Заралик
Можно реализовать так, в тип контента добавить поля необходимые допустим, чекбокс, напоминания и дату, а отправку уведомлений, можно реализовать через крон задачу, делать выборку из таблицы с записями, с учётом этого чекбокса напоминания и по дате текущей, как только дата наступила, отправлять письмо юзеру
#12 Социальное взаимодействие пользователей с сайтом 25 июня 2019 в 21:41

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

@iKrym
сделать почтовую рассылку, ну и по колонке date_log, выбрать те кто не заходили больше n дней)
#13 [ЕСТЬ РЕШЕНИЕ] Написать автору личное сообщение 22 февраля 2019 в 16:35
<?php echo $item['user_id']; ?>
#14 разные анкеты для разных пользователей 3 января 2019 в 16:48

Как сделать чтобы при заполнении анкеты после пункта пол мужской/женский, остальные вопросы изменились (конкретно ответы

@Kiruha
в профиле только 1 хук user_profile_update, его не хватит, а так вариант через js, при инициализации скрывать нужные поля, получать активное значение и показывать нужную группу полей
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.