CodeIgniter Çoklu izleme

2 Cevap php

Ben hangi bir sayfa birden çok kez kullanılarak inşa edilmiş olarak, ben başka bir görünümde ayarlanmış olan bir değişken ile çalışmak için gereken bir noktaya gelmiş, bir CodeIgniter sitede çalışıyorum başka bir görünümden erişmek mümkün mü?

Bu benim sahip kodudur

Denetleyici:

    public function index() {
//  $this->output->enable_profiler(TRUE);
    $data = array();
    if($query = $this->category_model->get_all_online()) {
        $data['main_menu'] = $query;
    }
    $this->load->model('image_model');
    /*
    * Sort out the users backgrounds, basically do a check to see if there is a 'special' background
    * if there is not a 'special' background then IF the user is logged in and has a background of there
    * own show that one, if not show a generic one, if they are not logged in show a bang one
    */
    $image = array();
    if ($query = $this->image_model->get_special_backgrounds()) {
        $image['special'] = $query;
    } elseif(!isset($image['special']) && !isset($this->session->userdata['user_id'])) {
        if($query = $this->image_model->get_mysite_background()) {
            $image['generic'] = $query;
        }
    } 

    if(isset($this->session->userdata['user_id'])) {
        if($query = $this->image_model->get_user_backgrounds($this->session->userdata['user_id'])) {
            $image['user_background'] = $query;
        }
    }
    $data = array_merge($data, $image);
    $this->load->view('home/main_page.php', array_merge($data, $image));
}

Model:

public function get_mysite_background() {
    $this->db->select('*');
    $this->db->from('background');
    $this->db->where('users_user_group_group_id', 1);
    $this->db->where('is_special', 0);

    $query = $this->db->get();
    return $query->result_array();
}

public function get_special_backgrounds() {
    $this->db->select('*');
    $this->db->from('background');
    $this->db->where('is_special', 1);

    $query = $this->db->get();
    return $query->result_array();
}

public function get_user_backgrounds($user_id) {
    $this->db->select('*');
    $this->db->from('background');
    $this->db->where('users_user_id', $user_id);
    $this->db->where('is_special', 0);

    $query = $this->db->get();
    return $query->result_array();
}

Soru İzlenme: Öncelikle değişkeni ayarlanır oluyor,

</div>
<div id="background-select">
<?php
$count = 0;
    if(isset($special)) {
        foreach ($special as $row) {
            $count ++;
            print '<div class="select">';
                print "<a href='index.php/home/category/".$row['background_id']."'>$count</a>";
            print '</div>';
            if($count = 1) {
                $background = $row['background_name'];
            }
        }
    }
    if(isset($generic)) {
        foreach ($generic as $row) {
            $count ++;
            print '<div class="select">';
                print "<a href='index.php/home/category/".$row['background_id']."'>$count</a>";
            print '</div>';
            if($count = 1) {
                $background = $row['background_name'];
            }
        }
    }
    if(isset($user_background)) {
        foreach ($user_background as $row) {
            $count ++;
            print '<div class="select">';
                print "<a href='index.php/home/category/".$row['background_id']."'>$count</a>";
            print '</div>';
            if($count = 1) {
                $background = $row['background_name'];
            }
        }
    }
?>

Ve ben değişken kullanmak istiyorum burada:

<body>
<div id="wrapper" style=<?php echo"background:url(/media/uploads/backgrounds/".$background.");";?>>

Değişken ben kullanmak isteyen $background

2 Cevap

Sen başka bir görünümden değerleri aktarmak için aşağıdaki yardımcı sınıfını kullanabilirsiniz:

class VarStore {

   private static $values = array();

   public static function get($key, $default = NULL) {
      return (isset(self::$values[$key])? self::$values[$key] : $default);
   }

   public static function set($key, $value) {
      self::$values[$key] = $value;
   }

}

Ikinci ilk görünümü ve $background = VarStore::get('background'); Çağrı VarStore::set('background', $background);.

Programlama sorunların çoğu kavramsal ve anlayış ... noktası Görünüm verileri görüntüleyebilir ve bunu hesaplamak değil etmektir. hesaplamalar olan fonksiyonlar gerektiğinde birçok modül tarafından çağrılabilir modellerinde yürütülmektedir. Bir görünüm iş çıkışı gösterecek ve sadece callucations BAKMA için görünümünü kullanmak için sahip olduğu tüm verileri denir önce Yani daha ben paradigma bu değişim yardımcı olacağını umuyoruz is ...