2012-07-14 16 views
10

सूची/संपादित करने के लिए कस्टम ट्रिगर/क्रियाएं जोड़ें, मैं अपने आवेदन में इकाइयों के प्रबंधन के लिए का उपयोग कर रहा हूं। साइट के व्यवस्थापक वीडियो जोड़ सकते हैं, और उनमें से कुछ को पहले अपने वक्ताओं द्वारा अनुमोदित करने की आवश्यकता है। एक प्राधिकरण प्रणाली पहले से ही काम कर रही है - मेरे पास एक कोड है जो एक विशेष लिंक उत्पन्न करेगा और स्पीकर को सूचित करेगा, जो वीडियो को स्वीकार या अस्वीकार कर सकता है, और व्यवस्थापक को स्वचालित रूप से सूचित कर सकता है।सोनाटा व्यवस्थापक: कार्रवाई

मैं अपने व्यवस्थापक अनुभाग को कस्टमाइज़ करना चाहता हूं, इसलिए वीडियो के बगल में ask for authorization बटन होगा। मैं ठीक है सूची सूची में (/admin/acme/videos/list) या दाएं-एनवी (/admin/acme/videos/x/edit/) में कहीं भी संपादन कार्रवाई में

ऐसा करने का सबसे अच्छा तरीका क्या है? प्रलेखन ब्लॉक अनुकूलन के बारे में बहुत कम कहता है, लेकिन मुझे this example मिल गया जो कि मैं देख रहा हूं, लेकिन मैं इसका उपयोग कैसे कर सकता हूं इसका पता नहीं लगा सका।

एक विकल्प preUpdate हुक का उपयोग करना है, और संपादन कार्रवाई में एक चेकबॉक्स जोड़ें, लेकिन एक बटन बहुत अच्छा होगा।

उत्तर

26

संपादित रूप

अपने व्यवस्थापक वर्ग में जोड़े के लिए एक कार्य जोड़ने के लिए:

protected function configureSideMenu(MenuItemInterface $menu, $action, Admin $childAdmin = null) 
{ 
    if (!$childAdmin && !in_array($action, array('edit'))) { 
     return; 
    } 
    $admin = $this->isChild() ? $this->getParent() : $this; 
    $id = $admin->getRequest()->get('id'); 
    $menu->addChild('My action', array('uri' => 'http://google.com?id=' . $id)); 
} 

ऐसा लगता है/व्यवस्थापक/एक्मे/वीडियो/एक्स// संपादित कार्यों के लिए बाईं ओर मेनू का निर्माण करेगा। वर्तमान आइटम के लिए आईडी रखने से आप किसी भी कस्टम यूआरएल को बनाने की अनुमति देते हैं।

सूची के लिए एक कार्य जोड़ने के लिए: अपने व्यवस्थापक फ़ाइल में

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->add('_action', 'actions', array(
      'actions' => array(
       'act' => array('template' => 'AcmeBundle:Video:my_temp.html.twig'), 
      ) 
     )) 
    ; 
} 

जोड़ने यह लिंक के साथ एक स्तंभ जोड़ना होगा, तो आप, अपने कॉलम के लिए एक टेम्पलेट बनाने की जरूरत

<a href="{{ admin.generateObjectUrl('delete', object) }}" class="delete_link" title="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}"> 
    <img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}" /> 
</a> 
की तरह कुछ

सभी उदाहरण आपके द्वारा प्रदान किए गए लिंक से लिया गया है। उम्मीद है कि यह

+0

'configSideMenu' को बहिष्कृत करने में मदद करता है। इसके बजाए 'configTabMenu' का प्रयोग करें। – sergekv

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