original_string: protected function get_unmailed_posts($starttime, $endtime, $now = null) {
          global $CFG, $DB;
  
          $params = array();
          $params['mailed'] = FORUM_MAILED_PENDING;
          $params['ptimestart'] = $starttime;
          $params['ptimeend'] = $endtime;
          $params['mailnow'] = 1;
  
          if (!empty($CFG->forum_enabletimedposts)) {
              if (empty($now)) {
                  $now = time();
              }
              $selectsql = "AND (p.created >= :ptimestart OR d.timestart >= :pptimestart)";
              $params['pptimestart'] = $starttime;
              $timedsql = "AND (d.timestart < :dtimestart AND (d.timeend = 0 OR d.timeend > :dtimeend))";
              $params['dtimestart'] = $now;
              $params['dtimeend'] = $now;
          } else {
              $timedsql = "";
              $selectsql = "AND p.created >= :ptimestart";
          }
  
          return $DB->get_records_sql(
                 "SELECT
                      p.id,
                      p.discussion,
                      d.forum,
                      d.course,
                      p.created,
                      p.parent,
                      p.userid
                    FROM {forum_posts} p
                    JOIN {forum_discussions} d ON d.id = p.discussion
                   WHERE p.mailed = :mailed
                  $selectsql
                     AND (p.created < :ptimeend OR p.mailnow = :mailnow)
                  $timedsql
                   ORDER BY p.modified ASC",
               $params);
      }
code: protected function get_unmailed_posts($starttime, $endtime, $now = null) {
          global $CFG, $DB;
  
          $params = array();
          $params['mailed'] = FORUM_MAILED_PENDING;
          $params['ptimestart'] = $starttime;
          $params['ptimeend'] = $endtime;
          $params['mailnow'] = 1;
  
          if (!empty($CFG->forum_enabletimedposts)) {
              if (empty($now)) {
                  $now = time();
              }
              $selectsql = "AND (p.created >= :ptimestart OR d.timestart >= :pptimestart)";
              $params['pptimestart'] = $starttime;
              $timedsql = "AND (d.timestart < :dtimestart AND (d.timeend = 0 OR d.timeend > :dtimeend))";
              $params['dtimestart'] = $now;
              $params['dtimeend'] = $now;
          } else {
              $timedsql = "";
              $selectsql = "AND p.created >= :ptimestart";
          }
  
          return $DB->get_records_sql(
                 "SELECT
                      p.id,
                      p.discussion,
                      d.forum,
                      d.course,
                      p.created,
                      p.parent,
                      p.userid
                    FROM {forum_posts} p
                    JOIN {forum_discussions} d ON d.id = p.discussion
                   WHERE p.mailed = :mailed
                  $selectsql
                     AND (p.created < :ptimeend OR p.mailnow = :mailnow)
                  $timedsql
                   ORDER BY p.modified ASC",
               $params);
      }
code_tokens: protected function get_unmailed_posts ( $ starttime , $ endtime , $ now = null ) { global $ CFG , $ DB ; $ params = array ( ) ; $ params [ 'mailed' ] = FORUM_MAILED_PENDING ; $ params [ 'ptimestart' ] = $ starttime ; $ params [ 'ptimeend' ] = $ endtime ; $ params [ 'mailnow' ] = 1 ; if ( ! empty ( $ CFG -> forum_enabletimedposts ) ) { if ( empty ( $ now ) ) { $ now = time ( ) ; } $ selectsql = "AND (p.created >= :ptimestart OR d.timestart >= :pptimestart)" ; $ params [ 'pptimestart' ] = $ starttime ; $ timedsql = "AND (d.timestart < :dtimestart AND (d.timeend = 0 OR d.timeend > :dtimeend))" ; $ params [ 'dtimestart' ] = $ now ; $ params [ 'dtimeend' ] = $ now ; } else { $ timedsql = "" ; $ selectsql = "AND p.created >= :ptimestart" ; } return $ DB -> get_records_sql ( "SELECT
                      p.id,
                      p.discussion,
                      d.forum,
                      d.course,
                      p.created,
                      p.parent,
                      p.userid
                    FROM {forum_posts} p
                    JOIN {forum_discussions} d ON d.id = p.discussion
                   WHERE p.mailed = :mailed
                  $selectsql
                     AND (p.created < :ptimeend OR p.mailnow = :mailnow)
                  $timedsql
                   ORDER BY p.modified ASC" , $ params ) ; }
docstring: Returns a list of all new posts that have not been mailed yet
  
  @param int $starttime posts created after this time
  @param int $endtime posts created before this
  @param int $now used for timed discussions only
  @return array
docstring_tokens: Returns a list of all new posts that have not been mailed yet