2013-11-28 10 views
5

मैंने यह पता लगाने के लिए is_home_page() फ़ंक्शन बनाया है कि कोई उपयोगकर्ता होमपेज पर है या नहीं, लेकिन मुझे यकीन नहीं है कि मुझे इसे कहां रखना चाहिए, इसलिए मुझे सभी विचारों और विषयों पर उपयोग किया जा सकता है?वाईआई कस्टम कस्टम फ़ंक्शन कहां रखना है?

function is_home_page() { 
    $app = Yii::app(); 
    return $app->controller->route == $app->defaultController; 
} 

उत्तर

12

एक MyClass.php घटकों

आप के अंदर उपयोग कर सकते हैं एक फ़ाइल बनाने के

जैसे स्थिर कार्यों को लिख सकते हैं
public static function is_home_page() { 
     $app = Yii::app(); 
     return $app->controller->route == $app->defaultController; 
    } 

जो किसी भी से पहुँचा जा सकता नियंत्रक, मॉडल या नीचे

MyClass::is_home_page(); 

आशा है कि यह आपकी मदद कर कार्यों के किसी भी संख्या विश्व स्तर पर लिखने के लिए और Yii के लिए कहीं भी

+0

मीठे के घटकों में रखना होगा, 'config/main.php' में भी कुछ भी संपादित करने की आवश्यकता नहीं है! धन्यवाद! – user2636556

6

एक फ़ाइल helpers.php बनाने और इसके अंदर घटकों फ़ोल्डर

संरक्षित
        डाल | -components
                | -helpers.php

और अपने config main.php फ़ाइल

require_once(dirname(__FILE__) . '/../components/helpers.php'); 

के शीर्ष में इस लाइन को जोड़ने और है कि अंदर अपने कार्य

<?php 
    function is_home_page() { 
     $app = Yii::app(); 
     return $app->controller->route == $app->defaultController; 
    } 

?> 

लिखने helpers.php अब इस समारोह को सीधे कॉल पूरे आवेदन में पहुँचा जा सकता है is_home_page() कहीं भी और यह आपका मूल्य वापस कर देगा।

+0

मैं इसके लिए एक उपनाम सेट करना चाहिए? 'Yii :: setPathOfAlias ​​('बूटस्ट्रैप', dirname (__ FILE__)। '/../ घटक/helpers.php');'? – user2636556

+1

जरूरी नहीं है अगर यह आसानी से किया जा सकता है तो आप ऐसा क्यों करेंगे। –

+0

धन्यवाद, बहुत उपयोगी) –

1

आप सभी सहायता विधियों के साथ कक्षा Globals बना सकते हैं।

class Globals{ 
     public function is_home_page() { 
      $app = Yii::app(); 
      return $app->controller->route == $app->defaultController; 
     } 
    } 

से main.phpcomponents सेट में अनुभाग: उदाहरण के लिए:

'globals' => array(
     'class' => 'alias.to.location.Globals' 
) 
कोड में से

आप इस Yii::app()->globals->is_home_page()

+0

'संरक्षित/घटक/helpers.php' में सही है? और 'alias.to.location.Globals'' application.components.Helpers' होगा? – user2636556

+1

इसे main.php में 'आयात' => सरणी() 'में क्यों न रखें? – user2636556

+0

'Globals.php' के रूप में फ़ाइल के लिए बेहतर सेट नाम (फ़ाइल का नाम कक्षा के नाम के बराबर होना चाहिए)। उपनाम 'application.components की तुलना में कक्षा' संरक्षित/घटक/Globals.php' में होगी।ग्लोबल्स ' – CreatoR

संबंधित मुद्दे