• Как записать сумму вложенных подзапросов из SQL выражения в выражение для Zend Framework?

    @Borgia Автор вопроса
    В общем вот такой, не самый красивый, но рабочий код:

    $tableActivityActions = Engine_Api::_()->getDbTable('actions', 'activity');
        $tableActivityActionsName = $tableActivityActions->info('name');
        
        $tableActivityLikes = Engine_Api::_()->getDbTable('likes', 'activity');
        $tableActivityLikesName = $tableActivityLikes->info('name');
        
        $tableCoreLikes = Engine_Api::_()->getDbTable('likes', 'core');
        $tableCoreLikesName = $tableCoreLikes->info('name');
            
        // get sub-select from first table
        $selectCoreLikes = $tableCoreLikes->select()
            ->from($tableCoreLikesName, array('COUNT(*)'))
            ->where("$tableCoreLikesName.user_id = ?", $user_id)
            ;
        
        // get sub-select from second table
        $selectActivityLikes = $tableActivityActions->select()
            ->from($tableActivityActionsName, array('COUNT(*)'))
            ->join($tableActivityLikesName, "$tableActivityLikesName.resource_id = $tableActivityActionsName.action_id", null)
            ->where("$tableActivityLikesName.poster_id != $tableActivityActionsName.object_id")
            ->where("$tableActivityActionsName.object_id = ?", $user_id)
            ;
        
        $db = $tableCoreLikes->getAdapter();
        $selectTotalLikes = $db->query('SELECT (' . $selectCoreLikes->__toString() . ') + ('
                                       . $selectActivityLikes->__toString() . ')');
        $result = $selectTotalLikes->fetchAll();
        
        $totalLikes = array_shift($result[0]);
    Ответ написан
    Комментировать
  • Как в Zend Framework реализовать проверку наступления следующей недели?

    @Borgia Автор вопроса
    Большое спасибо за ответы!
    В итоге решил сделать так:
    1. Выполняем запрос к БД, узнаем там, если у последней записи юзера дата старше даты начала недели.
    // Получаем первый день текущей недели
    $getFirstDay = date('Y-m-d 00:00:00', strtotime('this week', time()));

    2. Если запрос возвращает запись, значит голосовать нельзя. Если ничего нет, то можно.
    Ответ написан
    Комментировать
  • Как сделать ЧПУ для sitename/?attachment_id=1 в Wordpress?

    @Borgia Автор вопроса
    В общем сделал я вчера костыль. В /wp-includes/link-template.php в последний if функции get_attachment_link добавил $link = home_url( 'attachment/' . $object->post_name );

    Теперь все работает почти как и задумано, но вместо sitename/%имяприкрепленногофайла% идёт sitename/attachment/%имяприкрепленногофайла%

    Можно было бы через .htaccess убрать /attachment/ , но чтобы потом не возникло конфликта, если будет пост и файл с одинаковым названием, решил attachment оставить.

    Правда как только обновить Wordpress все слетит, если у кого есть более красивое решение, был бы рад его увидеть.
    Ответ написан
  • Сайдбар на MODX Revolution?

    @Borgia Автор вопроса
    Сделал через Wayfinder, оказалось все очень просто, но как всегда к этому приходишь не сразу.
    <div class = 'sidebar'>
      <ul class = 'info-line'>	
    	[[!Wayfinder? 
    	&startId=		`2`
    	&hideSubMenus=	`1`
    	&ignoreHidden=	`1`
    	]]	
      </ul>
    </div><!--sidebar-->

    Никаких "супер"-конструкций. Проще простого.
    Ответ написан
    Комментировать