Пример #1
0
 /**
  * $builder->deleted(Jam_Behavior_Paranoid::ALL),
  * $builder->deleted(Jam_Behavior_Paranoid::DELETED),
  * $builder->deleted(Jam_Behavior_Paranoid::NORMAL)
  *
  * @param Jam_Builder    $builder
  * @param Jam_Event_Data $data
  * @param string         $paranoid_filter_type
  */
 public function builder_call_deleted(Database_Query $builder, Jam_Event_Data $data, $paranoid_filter_type = Jam_Behavior_Paranoid::NORMAL)
 {
     if (!in_array($paranoid_filter_type, array(Jam_Behavior_Paranoid::DELETED, Jam_Behavior_Paranoid::NORMAL, Jam_Behavior_Paranoid::ALL))) {
         throw new Kohana_Exception("Deleted type should be Jam_Behavior_Paranoid::DELETED, Jam_Behavior_Paranoid::NORMAL or Jam_Behavior_Paranoid::ALL");
     }
     $builder->params('paranoid_filter_type', $paranoid_filter_type);
 }
Пример #2
0
 /**
  * Builds and returns
  * @param Database_Query $oQuery
  * @throws Lithium_Exception
  */
 protected function buildWhereStatement(Database_Query $oQuery)
 {
     $sSql = '';
     $bAddWhere = false;
     $sGlue = '';
     foreach ($oQuery->params() as $aParam) {
         if (count($aParam) != 2) {
             throw new Lithium_Exception('database.incorrect_query_params');
         }
         list($iType, $aParams) = $aParam;
         switch ($iType) {
             case Database_Query::C_AND:
                 $sGlue = 'AND ';
                 $sOperator = $this->getSqlConditionStatement($aParams);
                 $bAddWhere = true;
                 break;
             case Database_Query::C_OR:
                 $sGlue = 'OR ';
                 $sOperator = $this->getSqlConditionStatement($aParams);
                 $bAddWhere = true;
                 break;
             case Database_Query::C_ORDERBY:
                 $sOperator = sprintf('ORDER BY %s %s', $aParams[0], Database_Query::S_DESC == $aParams[1] ? 'ASC' : 'DESC');
                 break;
             default:
                 throw new Lithium_Exception('database.unknown_condition_type', $iType);
         }
         if (!empty($sSql)) {
             $sSql .= ' ' . $sGlue;
         }
         $sSql .= $sOperator;
     }
     if ($bAddWhere && !empty($sSql)) {
         $sSql = ' WHERE ' . $sSql;
     }
     return $sSql;
 }