Jump to content

do zou kno bether way, less messy one?


sangoku

Recommended Posts

hy i have a logical dilema(math sorta) so i figured il ask it here

 

i have a tidynes problem so if enyone know how to tidy up this thing plese do so... PLEASE !!!!

 

i have a  switch($withAValue){

case 1:

//i do a complex for loop

//which has in in 2 statement that compare the given value against 0 if it is bigger or smaller than 0

 

 

case 2 :

//again the complex loop but  the jobs that are to be done are reversed the one that i need to do when a value is bigger than 0 is now the one i need to do when the vlaue is smaller than 0....

 

can zou help me out the code is here,,, only a  theoretical approach is enough i can change the file my self just a idea is  good enough for future mesees like this one,,,, i dont have  a slightest intent to shange this mess...

 

<?php

    /**
    * @copyright  at ©sinisaculic@gmail.com, all rights reserverd 2009-2010
    * @author Siniša Čulić
    * @version 1.0
    * @created 19-03-2010 15:04:17
    */

    //provijera pristupa i logovanje napada
    if (!defined('ACESS')){// ukoliko pristup nije opravdan radi:
        if (!defined('SITE_ROOT')) {
            $sada = $_SERVER['PHP_SELF']; //saznajemo lokaciju samoga fajla 
            $root = explode('/',$sada, 3);// izdvajamo samo lokacju osnovnog foldera
            define ('SITE_ROOT',$_SERVER['DOCUMENT_ROOT'].$root[1]); // i date informacije definisemo
        }
        include_once(SITE_ROOT.'/protected/internaSigurnost.php');
    }// kraj provjere sigurnosti



    class votingHistory extends DatabaseObject {

        protected $kljuc; 
        protected static $table_name = 'voting_history';
        protected static $kolone_u_bazi = array
        ('object_id','tip','user_ID','vote_value','vote_date','user_value','user_action') ;
        
        protected $object_id; //INT(10) UNSIGNED NOT NULL ,
        protected $tip; //VARCHAR(45) NOT NULL ,
        protected $user_ID;// INT(10) NOT NULL ,
        protected $vote_value;// SMALLINT NOT NULL DEFAULT 0 ,
        protected $vote_date; //TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
        protected $user_value; //SMALLINT NOT NULL ,
        protected $user_action; //ENUM('default_value', 'vote_value', '0')
        /**
        * Nalazi unose koji su vezani za neki određeni objekt
        * 
        * @param int $id
        * @param string $name
        * 
        */
        private function findObjects($id, $name){
            $sql = 
            "SELECT * from {$this->tabela_u_bazi} WHERE object_id = {$id} and tip = {$tip}";
            return $this->find_by_sql($sql);
        }

        /**
        * Pravi novi unos u bazi tabeli reputacione istorije 
        * 
        * @param int $id
        * @param string $object_name
        * @param int $user_ID
        * @param int $user_value
        * @param int $vote_value
        * 
        * @returns true/false
        */
        public function newEntry($id, $object_name,$user_ID, $user_value, $vote_value ){
            //provijeravamo dali su sve vrednosti koje su date yadovoljavaju kriterije tipa podataka
            if(is_int($id)and is_string($object_name)and is_int($user_ID) and is_int($user_value) and is_int($vote_value)){
                $this->object_id = $id;
                $this->tip = $object_name;
                $this->user_ID= $user_ID;
                $this->vote_value = $vote_value;
                $this->user_value = $user_value;
                $this->vote_date = time();
            }else {
                return false;
            }


            //poslije kreiramo unos podataka u bazu podataka, ukoliko je on uspijesan vracamo true
            return $this->create();
        }

        /**
        * Pravi novi unos u bazi tabeli reputacione istorije 
        * 
        * @param int $id
        * @param string $object_name
        * @param int $user_ID
        * @param int $user_value
        * @param int $vote_value
        * 
        * @returns true/false
        */
        public static function generateNewEntry($id, $object_name,$user_ID, $user_value, $vote_value ){
            //staticka zamijena za novi unos
            $entry = new votingHistoy();
            return $entry->newEntry($id,$object_name,$user_ID,$user_value,$vote_value);
        }
        /**
        * Dati objekat pri skoku objekta svakom korisniku koji je potvrdi pozitivnu/negativnu 
        * ocjenu daje poene, dok korisnicima koji su ocijelnilli drugacije radi prma kongif fajlu 
        * 
        * @param pozitivan/negativan $skok
        */
        public static function uradiFinalniObracun($skok = 'pozitivan', $id, $object_name){
            $obracun = new votingHistory();
            $obracun->finalniObracun($skok, $id, $object_name);
        }

        /**
        * Dati objekat pri skoku objekta svakom korisniku koji je potvrdi pozitivnu/negativnu 
        * ocjenu daje poene, dok korisnicima koji su ocijelnilli drugacije radi prma kongif fajlu 
        * 
        * @param pozitivan/negativan $skok
        */
        public function finalniObracun($skok = 'pozitivan', $id, $object_name){
            //prvo nalazimo sve aktere koji su ocjenili dati objekat 
            $akteri =  $this->findObjects($id,$object_name);
            $error = false; //postavljamo varijablu koja ce pratiti dali je nastala greska 

            switch($skok){//pravimo swithc koji ce gledati koji je skok u pitanju poz/neg
                case 'pozitivan':
                    foreach ($akteri as $akter){
                        //ukoliko imamo vrednost glasanja vecu od nule jednostavno nagradjujemo ocjenjivaca
                        if ($akter->vote_value > 0){
                            //ukoliko je korisnik pozitivno ocijenio objekat 
                            $this->nagradiKorisnika($akter->user_ID,$akter->user_value);        
                        }else if($akter->vote_value < 0){

                                //obradjujemo sta je admin zadao kao akciju korisnika 
                                if ($akter->user_action == 0){ // suer action = ENUM('default_value', 'vote_value', '0')

                                }else if($akter->user_action == 'vote_value'){
                                        $vrednost= - $akter->vote_value;  
                                        //ukoliko je korisnik negativno ocijenio objekat 
                                        $this->nagradiKorisnika($akter->user_ID,$vrednost);
                                    }else if ($akter->user_action =='default_value'){
                                            $vrednost= - NEGATIVNA_REAKCIJA_REPUTACIJA;
                                            //ukoliko je korisnik negativno ocijenio objekat 
                                            $this->nagradiKorisnika($akter->user_ID,$vrednost);
                                        }else{
                                            $error = true;
                                }
                            }
                    }
                    break;


                case 'negativan':
                    foreach ($akteri as $akter){
                        //ukoliko imamo vrednost glasanja vecu od nule jednostavno nagradjujemo ocjenjivaca
                        if ($akter->vote_value < 0){
                            //ukoliko je korisnik pozitivno ocijenio objekat 
                            $this->nagradiKorisnika($akter->user_ID,$akter->user_value);        
                        }else if($akter->vote_value > 0){

                                //obradjujemo sta je admin zadao kao akciju korisnika 
                                if ($akter->user_action == 0){ // suer action = ENUM('default_value', 'vote_value', '0')

                                }else if($akter->user_action == 'vote_value'){
                                        $vrednost= - $akter->vote_value;  
                                        //ukoliko je korisnik negativno ocijenio objekat 
                                        $this->nagradiKorisnika($akter->user_ID,$vrednost);
                                    }else if ($akter->user_action =='default_value'){
                                            $vrednost= - NEGATIVNA_REAKCIJA_REPUTACIJA;
                                            //ukoliko je korisnik negativno ocijenio objekat 
                                            $this->nagradiKorisnika($akter->user_ID,$vrednost);
                                        }else{
                                            $error = true;
                                }
                            }
                    }
                    break;
            } //end switcha skok XD bas veliko haaaa ~.~ ... QQ moram naci jednostavnije  


            if ($error){
                return false;
            }else {
                return true;
            }
        }
        protected function nagradiKorisnika($id, $vrednoscu){
            $user = new korisnik(0,$id);
            $user->energy = $user->energy + ($vrednoscu);
            //dajemo niski prioritet izvrsenja upita upadte
            $user->update(true); 
        }
    }//kraj klase
?>

 

 

 

 

 

 

Link to comment
https://forums.phpfreaks.com/topic/196165-do-zou-kno-bether-way-less-messy-one/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.