Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Funkcja budująca tablicę plików do wczytania
XP'ek
post
Post #1





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Witam wszystkich,

zbudowałem sobie taki skrypcik w którym tworzę Tablicę css'ów do wczytania dla danego controlera wygląda to tak:

controler welcome.php

  1. public function __construct()
  2. {
  3. parent::__construct();
  4. $admin = new Admin();
  5. $admin->load();
  6.  
  7. View::setCSS('{$base_url}public/css/styles/dashboard.css', "text/css");
  8. }


model view.php

  1.  
  2. public $_css = array();
  3. public $_jq = array();
  4.  
  5. /**
  6.   * przygotowanie tablicy stylu CSS
  7.   */
  8. public function setCSS($data, $type = false, $media = false) {
  9. View::$this->_css[] = array("href"=>$data, "type"=>$type, "media"=> $media);
  10. }
  11.  
  12. /**
  13.   * przygotowanie tablicy stylu jQuery
  14.   */
  15. public function setJQ($data) {
  16. View::$this->_jq[] = array("href"=>$data);
  17. }
  18.  
  19. /**
  20.   * przygotowanie tablicy stylu jQuery
  21.   */
  22. public function gets() {
  23. $jq = View::$this->_jq;
  24. $css = View::$this->_css;
  25. if($css)Smarty::assign("_CSS", $css);
  26. if($jq) Smarty::assign("_JQ", $jq);
  27. }


model admin.php
  1. function load(){
  2. /* Wczytanie domyślnych CSS'ów */
  3. View::setCSS('public/css/style.css', "text/css");
  4. View::setCSS('public/css/bootstrap/bootstrap-responsive.css', "text/css");
  5. View::setCSS('public/css/bootstrap/bootstrap.css', "text/css");
  6. View::setCSS('public/css/fonts.css', "text/css");
  7.  
  8. /* Wczytanie domyślnych JS'ów */
  9. View::setJQ("public/js/html5shiv-printshiv.js");
  10. View::setJQ("public/js/jquery/jquery-1.6.4.min.js");
  11. View::setJQ("public/js/jquery/jquery-ui-1.8.16.custom.min.js");
  12.  
  13. /* przkezanie parametrów */
  14. View::gets();
  15. }


no i oczywiście wszystko było by pięknie ale tak nie jest dostaję zwrotne takie błędy

Cytat
A PHP Error was encountered

Severity: Notice

Message: Undefined property: Welcome::$_css

Filename: core/Model.php

Line Number: 51

A PHP Error was encountered

Severity: Notice

Message: Indirect modification of overloaded property Admin::$_css has no effect

Filename: models/view.php

Line Number: 52


proszę o pomoc w rozwiązaniu problemu całość ma polegać na tym, że wstawiam sobie w index.tpl
Kod
    <!-- Style -->
    {foreach from=$_CSS item=css}
    <link rel="stylesheet" href="{$css.href}"{if $css.type} type="{$css.type}"{/if}{if $css.media} type="{$css.media}"{/if}>
    {/foreach}


i odpowiednio na moje potrzeby zostaną wczytane te pliki które sobie wpiszę w danym controllers

Ten post edytował XP'ek 4.02.2013, 00:10:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
XP'ek
post
Post #2





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


ok dzięki faktycznie wystarczyło zmienić

Cytat
private $_css = array();
private $_jq = array();


na
Cytat
private static $_css = array();
private static $_jq = array();


ale pozostaje kwestia jak najlepiej rozwiązać opcję z View::gets(); by pobierać elementy bo jeśli zostawię nawet tak
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Inbox extends CI_Controller {
  4.  
  5. public function __construct()
  6. {
  7. parent::__construct();
  8. $admin = new Admin();
  9. $admin->admin();
  10. $admin->lang();
  11. $admin->uri();
  12.  
  13. View::setCSS(base_url().'public/css/style.css', "text/css");
  14. View::setCSS(base_url().'public/css/bootstrap/bootstrap-responsive.css', "text/css");
  15. View::setCSS(base_url().'public/css/bootstrap/bootstrap.css', "text/css");
  16. View::setCSS(base_url().'public/css/fonts.css', "text/css");
  17. View::setCSS(base_url().'public/css/styles/helper.css', "text/css");
  18. View::setCSS(base_url().'public/css/styles/colors.css', "text/css");
  19. View::setCSS(base_url().'public/css/styles/agenda.css', "text/css");
  20. View::setCSS(base_url().'public/css/size/480.css', "text/css","only all and (min-width: 480px)");
  21. View::setCSS(base_url().'public/css/size/768.css', "text/css","only all and (min-width: 768px))");
  22. View::setCSS(base_url().'public/css/size/992.css', "text/css","only all and (min-width: 992px)");
  23. View::setCSS(base_url().'public/css/size/1200.css', "text/css","only all and (min-width: 1200px)");
  24.  
  25. /* Wczytanie domyślnych JS'ów */
  26. View::setJQ(base_url()."public/js/jquery-1.8.2.min.js");
  27. View::setJQ(base_url()."public/js/setup.js");
  28. View::setJQ(base_url()."public/js/bootstrap/bootstrap.js");
  29. View::setJQ(base_url()."public/js/tinycon.js");
  30.  
  31. View::gets();
  32. }
  33.  
  34. public function index(){
  35. View::setCSS(base_url().'public/css/styles/messages.css', "text/css");
  36.  
  37. $this->smarty->view('inbox/index.tpl');
  38. }
  39.  
  40. }
  41.  


to nie wczyta mi SetCSS z index'a znowuż nie chce w każdej funkcji rozpoczynać od View::gets(); bo wtedy owszem to działa i wszystko co mam nad gets'em jest poprawnie wczytane

próbowałem wykorzystać http://ellislab.com/codeigniter/user-guide...re_classes.html

  1. <?php
  2. class MY_Controller extends CI_Controller {
  3.  
  4. function __construct()
  5. {
  6. parent::__construct();
  7. View::gets();
  8. }
  9.  
  10. }
  11. ?>


i w controllerze wywołałem extends MY_C.. zamiast CI ale znowu dostaje
Cytat
A PHP Error was encountered

Severity: Notice

Message: Undefined property: Inbox::$_jq

Filename: models/view.php

Line Number: 66

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Inbox::$_css

Filename: models/view.php

Line Number: 67
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 10:18