Esempio n. 1
0
 public function prepareQueryBeforeCount(xPDOQuery $c)
 {
     $c = parent::prepareQueryBeforeCount($c);
     $alias = $c->getAlias();
     # if($this->getProperty('parent_joining_type') == 'inner'){
     #     $c->innerJoin('modResource', "Parent");
     # }
     # else{
     #     $c->leftJoin('modResource', "Parent");
     # }
     # $c->innerJoin('modUser', 'Author', "Author.id = {$alias}.createdby");
     #
     $where = array("parent" => 86855, "OR:rss:=" => 1);
     #
     #
     $c->where($where);
     # print '<pre>';
     # print_r($this->properties);
     # print '</pre>';
     # $c->select(array(
     #     "{$alias}.id",
     #     "{$alias}.pagetitle",
     # ));
     # $c->prepare();
     # print $c->toSQL();
     # exit;
     return $c;
 }
Esempio n. 2
0
 public function setSelection(xPDOQuery $q)
 {
     $q = parent::setSelection($q);
     $q->innerJoin('modUser', 'CreatedBy');
     $q->innerJoin('modUserProfile', 'CreatedByProfile', "CreatedBy.id = CreatedByProfile.internalKey");
     # $q->innerJoin('SocietyTopicAttributes', 'Attributes');
     # $q->innerJoin('SocietyBlogTopic', 'bt', "bt.topicid = {$this->classKey}.id");
     # $q->innerJoin('modResource', 'blog', "blog.id = bt.blogid");
     /*
         Получаем данные диалоговой ветви
     */
     $q->leftJoin('SocietyThread', 'thread', "thread.target_class='modResource' AND thread.target_id={$this->classKey}.id");
     $q->select(array("CreatedBy.username as author", "CreatedByProfile.fullname as author_fullname", "CreatedByProfile.photo as author_avatar", "CreatedBy.username as author_username", "thread.id as thread_id", "thread.positive_votes", "thread.negative_votes", "thread.comments_count"));
     /*
         Проверяем, есть ли голос пользователя здесь
     */
     # $c->leftJoin('SocietyVote', 'vote', "vote.target_class='modResource' AND vote.target_id={$this->classKey}.id AND vote.user_id = ". $this->modx->user->id);
     # $c->select(array(
     #     "vote.id as vote_id",
     #     "vote.vote_direction",
     #     "vote.vote_value",
     # ));
     /*$s = $q->prepare();
       
       $s->execute();
       
       print_r($s->errorInfo());
       
       exit;*/
     return $q;
 }
Esempio n. 3
0
 public function prepareQueryBeforeCount(xPDOQuery $c)
 {
     $c = parent::prepareQueryBeforeCount($c);
     $alias = $c->getAlias();
     $c->innerJoin('view.modResourceVisitView', "visits", "visits.resource_id = {$alias}.id");
     $where = array();
     if ($where) {
         $c->where($where);
     }
     return $c;
 }
 public function afterIteration(array $list)
 {
     $list = parent::afterIteration($list);
     // Получаем всех пользователей, кому отправлять рассылку
     $users_query = $this->modx->newQuery('modUser');
     $alias = $users_query->getAlias();
     $users_query->distinct();
     $users_query->innerJoin('modUserProfile', 'Profile');
     $users_query->leftJoin('SocietyNoticeUser', 'Notices');
     $users_query->leftJoin('SocietyNoticeType', 'NoticeType', "NoticeType.target = 'modResource' AND NoticeType.id = Notices.notice_id");
     $users_query->innerJoin('modUserGroupMember', 'UserGroupMembers');
     $users_query->select(array("{$alias}.*", "Profile.email"));
     $users_query->where(array("active" => 1, "Profile.blocked" => 0, "NoticeType.id" => 3));
     # $users_query->where(array(
     #     "UserGroupMembers.user_group"    => '1',
     #     # "id" => 422,
     # ));
     $users_query->where(array("Profile.blockeduntil" => 0, "OR:Profile.blockeduntil:<" => time()));
     # $users_query->prepare();
     # print $users_query->toSQL();
     $date = date('d-m-Y');
     $site_name = $this->modx->getOption('site_name');
     $this->modx->smarty->assign('articles', $list);
     $auth_link_salt = $this->modx->getOption('modsociety.auth_link_salt');
     foreach ($this->modx->getIterator('modUser', $users_query) as $user) {
         # print_r($user->toArray());
         $this->modx->smarty->assign('user', $user);
         $message = $this->modx->smarty->fetch('messages/society/articles/mailling/letter.tpl');
         # print $message;
         # exit;
         $subject = "Рассылка {$site_name} {$date}";
         if ($emailmessage = $this->modx->newObject('SocietyEmailMessage', array("user_id" => $user->id, "subject" => $subject, "message" => $message))) {
             # print_r($emailmessage->toArray());
             # $manager = $modx->getManager();
             // $manager->createObjectContainer('SocietyEmailMessage');
             $emailmessage->save();
         }
     }
     # print_r($users_query->stmt->errorInfo());
     # print $message;
     return $list;
 }
Esempio n. 5
0
 public function initialize()
 {
     $this->setProperties(array("main_news_only" => true));
     return parent::initialize();
 }
Esempio n. 6
0
 public function prepareRow(xPDOObject $object)
 {
     /*
         Определяем тип объекта
     */
     if ($object instanceof ShopmodxResourceProductModel) {
         $object->set('object_type', 'model');
     } else {
         if ($object instanceof ShopmodxResourceProduct) {
             $object->set('object_type', 'product');
         } else {
             $object->set('object_type', 'document');
         }
     }
     return parent::prepareRow($object);
 }