Кирилл

Кирилл

С нами с 28 июля 2018; Место в рейтинге пользователей: #3462
Кирилл
09 августа 2020, 08:02
0
social tools

просьба к разработчикам данного компонента

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

собственно как я вижу





полный размер

спасибо заранее, если обновите
Кирилл
05 августа 2020, 21:18
0
правда в menutitle, но главное что работает

Snippet: customadduser

<?php
// Получаем список пользователей
    $query = $modx->newQuery('modUser');
    $users = $modx->getCollection('modUser',$query);

foreach($users as $i => $user) {
        // Выводим id пользователя
        $reguserid = $user->id;
        echo sprintf($reguserid);
    }
    
$resource = $modx->newObject('modResource');
$resource->set('parent', 32);
$resource->set('pagetitle', $hook->getValue('username') ); 
$resource->set('longtitle', $hook->getValue('userseek') ); 
$resource->set('menutitle', $reguserid); 
$resource->set('template', 25);  
$resource->set('content', '');
$resource->set('isfolder', 0);              
$resource->set('published', 1);            
$resource->set('createdon', time());       
$resource->set('cacheable', 0);
$resource->set('searchable', 1);
$resource->set('show_in_tree', 1);

$resource->save();
Кирилл
05 августа 2020, 18:18
0
спасибо за советы

пробывал через runProcessor с TV field это очень сложно для меня

подскажите пожалуйста как просто в menutitle userid пользователя при регистрации прописать

если конечно кто подскажет как программно через clientconfig сразу данный field создавать (например useridcl)
чтобы потом к данному плэйсхолдеру обращаться, было бы вообще просто замечательно
Кирилл
05 августа 2020, 15:59
0
socialtols сразу так неработает, забыл чанки поправить

socialtols
Сделать правки в чанках по умолчанию.
Изменить readMsgResourceID — на id вашего ресурса с вызовом сниппета для чтения сообщений
Изменить formSendResourceID — на id вашего ресурса с вызовом сниппета для формы отправки сообщения
но было бы конечно замечательно если бы в socialtols из коробки можно было blocked user делать

а как report user чтобы потом сниппетом средствами modx revo Blocked account делать, я думаю ктонибудь подскажет ))))))
Кирилл
04 августа 2020, 02:55
0
ешё одна интересная мысль

а как бы так доделать в socialtools

resource inbox

block user
<a href="[[~]]" target="_self" class="btn btn-warning">block user</a>
непринимает больше никаких messages от blocked users

report user
<a href="[[~]]" target="_self" class="btn btn-danger">report user</a>
каким то бразом notification для админа приходит через дефолтную реализацию modx revo manager/ admin/messages

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

что то гдето в чанке soc.listRowInbox нетак

soc.listRowInbox

<div id='socDivMsg[[+id]]'>
<div class="social-msg [[+is_read:isequalto=`0`:then=`unread_mess`]]"  >

<a href='[[~readMsgResourceID? &msgID=`[[+id]]` &action=`inbox`]]'>
<!-- for photo you can use extra phpthumbon or phpthumbof  //  exmaple [[+sender:userinfo=`photo`:phpthumbon=`wp=32&hp=32&wl=32&hl=32&zc=1`]]  -->
<span class='social-photo'><img src='[[+sender:userinfo=`photo`]]'  width="32" height="32"></span>
 <div  class="social-listheader">[[+sender:userinfo=`username`]] <b>[ [[+subject]] ]:</b></div>


<div  class="social-msgcontent">
[[+message]]
</div>

 <small style='float:right'>[[+date_sent]]</small> 
 </a>
</div>

<div class="btn-toolbar ">
    <a href="[[~formSendResourceID? &msgID=`[[+id]]`  &recipient=`[[+sender]]`]]" class="socFormButton" >[[%socialtools_form_button_answer]]</a>
    <a class="socFormButton"  onclick="SocialTools.dialog.delete([[+id]],'inbox', this, '#socDivMsg[[+id]]');" >[[%socialtools_form_button_delete]]</a>
</div>
    
<div style="clear:both"></div>
</div>

подскажите как сделать чтобы replay нормально работал, как правильно прописать нужно
Кирилл
02 августа 2020, 13:54
0
спасибо за совет
Кирилл
01 августа 2020, 20:23
0
спасибо за совет, тоже самое :( непрописывает

что самое интересное когда так делаешь всё нормально

//dobavlyayet v tv field profile_id (number type)

<?php
$res = $modx->getObject('modResource', 225);

$res->setTVValue('profile_id','789789');
$res->save();
Кирилл
31 июля 2020, 13:51
0
пробую так

snippet customadduser

<?php
$resource = $modx->newObject('modResource');
$resource->set('parent', 32);
$resource->set('pagetitle', $hook->getValue('username') );
$resource->set('template', 25);  
$resource->set('content', '');
$resource->set('isfolder', 0);              
$resource->set('published', 1);            
$resource->set('createdon', time());       
$resource->set('cacheable', 0);
$resource->set('searchable', 1);
$resource->set('show_in_tree', 1);

$userid = $modx->user->get('id');
$userid->save();

$resource->setTVValue('profile_id', $userid);

$resource->save();

постоянно пишет call to a member function save() on integer

буду признателен, кто поправит
Кирилл
31 июля 2020, 06:13
0
Спасибо огромнейшее!
Кирилл
31 июля 2020, 03:09
0
спасибо огромное, попробую
Кирилл
27 июля 2020, 20:08
0
СПАСИБО ОГРОМНЕЙШЕЕ!
Кирилл
27 июля 2020, 20:08
0
вопрос снят, нашёл решение
Кирилл
26 июля 2020, 17:19
0
на пиво на данный момент скинуть пока нет возможности

вот решение без cheeckbox

во фронтенде

музыка
фотография
автомобили
чтение литературы

Plugin: profileinteresi (дополнительное поле интересы пользователя)

<?php
switch ($modx->event->name) {
        
        case "OnMODXInit":
            $map = array(

                'modUserProfile' => array(
                    'fields' => array(
                        'userinteresi' => '',
                    ),
                    'fieldMeta' => array(
                        'userinteresi' => array(
                            'dbtype' => 'varchar',
                            'precision' => '255',
                            'phptype' => 'string',
                            'null' => false,
                        ),
                    ),
                ),
            );

            foreach ($map as $class => $data) {
                $modx->loadClass($class);

                foreach ($data as $tmp => $fields) {
                    if ($tmp == 'fields') {
                        foreach ($fields as $field => $value) {
                            foreach (array('fields', 'fieldMeta', 'indexes') as $key) {
                                if (isset($data[$key][$field])) {
                                    $modx->map[$class][$key][$field] = $data[$key][$field];
                                }
                            }
                        }
                    } elseif ($tmp == 'composites' || $tmp == 'aggregates') {
                        foreach ($fields as $alias => $relation) {
                            if (!isset($modx->map[$class][$tmp][$alias])) {
                                $modx->map[$class][$tmp][$alias] = $relation;
                            }
                        }
                    }
                }
            }
            break;
        
        case "OnUserFormPrerender":
            if (!isset($user) || $user->get('id') < 1) {
                return;
            }

            if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {              
                $data['userinteresi'] = htmlspecialchars($user->Profile->userinteresi);

                $modx->controller->addHtml("
                    <script type='text/javascript'>
                        Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                            this.on('beforerender', function() {
                                // Получаем колонки первой вкладки
                                var leftCol = this.items.items[0].items.items[0].items.items[0];
                                var rightCol = this.items.items[0].items.items[0].items.items[1];

                                // Добавляем новое поле в левую колонку 3ым по счёту полем (перед полем 'Email')
                                leftCol.items.insert(4, 'modx-user-userinteresi-field', new Ext.form.TextField({
                                    id: 'modx-user-userinteresi-field',
                                    name: 'userinteresi',
                                    fieldLabel: 'интересы пользователя',
                                    xtype: 'textfield',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['userinteresi']}',
                                }));
                                
                            });
                        });
                    </script>
                ");
            }
            break;
    }

System Events

OnMODXInit
OnUserFormPrerender
Кирилл
20 июля 2020, 19:34
0
согласен, как будет возможность обязательно незабуду отблагодарить за данное решение
данный топик у меня в избранных до лучших времён
Кирилл
20 июля 2020, 19:31
0
спасибо, попробую
Кирилл
20 июля 2020, 12:47
0
Спасибо вам огромнейшее!!!

Вот честное слово была бы возможность я бы вам на ящик пива даже скинул.
Современем потом найду этот топик и надеюсь скину позже

Кому нежалко, отблагодарите человека за такое суперовое решение!!!
Кирилл
11 июня 2020, 17:32
0
спасибо огромное за такой совет
а как вернуть обратно?
Кирилл
11 июня 2020, 17:03
0
возможность редактировать шаблон через
Resources / Quick Update Uses Template
Кирилл
09 июня 2020, 22:13
-1
только несмейтесь git это очень сложно для меня
я когда сайт визитку или shop делаю мне скайпа с головой хватает

вообщем я к скайпу больше склоняюсь на данный момент :)

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

вообще было бы отлично
Кирилл
09 июня 2020, 22:03
0
спасибо за совет