stop words и socialtools

всем привет

буду рад если поможете с данной реализацией

есть пример

Select Data With PDO (+ Prepared Statements)

Example (PDO)

<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator {
    function __construct($it) {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }

    function beginChildren() {
        echo "<tr>";
    }

    function endChildren() {
        echo "</tr>" . "\n";
    }
}

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

в socialtools есть таблицы modx_soc_dialogReceive и modx_soc_dialogSend

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

в modx_soc_dialogReceive и modx_soc_dialogSend

есть table fields

Name

subject
message

sender

приведите пожалуйста простой пример с поиском по subject и message например в stop words «у нас можно купить сайт такойто link»
чтобы при запуске ресурса например resource stopwords искал по словам и если количество определённых слов больше 5 (или заданного количества определённого) «у нас» «сайт» и тд
осуществлялся временный blocked user данного пользователя и создавался report user в каком нибудь parent user reports

например parent 72
reported spam users

создаёться ресурс с pagetitile данного юзера перед его temporary blocked на уровне modx revo user (ну тоесть как сам в manager panel выбрал Blocked user) только както программно

я думаю всем интересна будет такая реализация в различных вариация

с помощью pdotools или каким либо другим образом

ну да и пока незабыл

был бы рад за совет как вывести определённый field из родных полей user или добавленных и уже как родных ))))

в Users во frontend (тоесть где сразу all users отображаються а потом уже detailed смотриться в manager)

всем спасибо за внимание
Кирилл
03 августа 2020, 22:33
modx.pro
390
0

Комментарии: 2

Кирилл
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 нормально работал, как правильно прописать нужно
    Кирилл
    05 августа 2020, 15:59
    0
    socialtols сразу так неработает, забыл чанки поправить

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

    а как report user чтобы потом сниппетом средствами modx revo Blocked account делать, я думаю ктонибудь подскажет ))))))
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2