मैं एक कस्टम सोनाटा पेजनेवबार
सरल मार्ग
medapp_adminStreamCommands:
path: /admin/stream
defaults: { _controller: MedAppBundle:VideoChat/VideoChat:adminStreamCommands }
नियंत्रक कि व्यवस्थापक पूल रिटर्न
public function adminStreamCommandsAction(Request $request)
{
return $this->render('@MedApp/AdminSonata/Stream/stream_commands.html.twig', array(
'admin_pool' => $this->get('sonata.admin.pool')));
}
सादा दृश्य टेम्पलेट
बना लिया है करने के लिए कस्टम सोनाटा पेज मार्ग जोड़ें{% extends '@MedApp/AdminSonata/standard_layout.html.twig' %}
{% block content %}
foobar
{% endblock content
यह काम करता है, मैं सी /admin/foo
के साथ मेरी वेबसाइट पर इसका उपयोग करें और मुझे एक पृष्ठ मिलता है जिसमें सोनाटा व्यवस्थापक टेम्पलेट मेरे 'foobar' सामग्री के साथ है।
मेरा सवाल है, मैं डिफ़ॉल्ट टेम्पलेट को संशोधित किए बिना बाएं और शीर्ष नौसेना में यह मार्ग कैसे जोड़ सकता हूं? ऐसा इसलिए है क्योंकि है छोड़ दिया मेनू एक KNP मेनू द्वारा प्रदान की गई है:
{% block side_bar_nav %}
{% if app.user and is_granted('ROLE_SONATA_ADMIN') %}
{{ knp_menu_render('sonata_admin_sidebar', {template: admin_pool.getTemplate('knp_menu_template')}) }}
{% endif %}
{% endblock side_bar_nav %}
और मैं किसी भी तरह अपने नए पेज जोड़ने की जरूरत है इस मेनू से प्रदान करने की।
आम तौर पर, एक पृष्ठ पर एक सेवा के माध्यम से जोड़ा जाता है, लेकिन इन एक इकाई के शीर्ष पर बनाया जाता है:
servicename:
class: Bundle\Class
arguments: [~, Bundle\Entity\Entityname, ~]
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: CustomName}
मेरे पेज एक इकाई का उपयोग नहीं कर रहा है, हालांकि, सिर्फ स्थैतिक सामग्री या सामग्री नहीं निर्भर है कि एक इकाई पर
मुझे पहले से पता है कि मैं मेनू उत्पन्न करने वाले ब्लॉक को संशोधित कर सकता हूं, लेकिन मैं सोच रहा था कि सबसे अच्छा तरीका मेरी कक्षा को sonata.admin के रूप में टैग की जाने वाली सेवा के रूप में जोड़ना होगा जिसमें एक ओआरएम प्रबंधक_ टाइप नहीं है, दूसरे शब्दों, एक संस्था नहीं है। वह कैसे किया जा सकता है?
मैंने पहले ही ऐसा किया था। हालांकि, मुझे व्यवस्थापक पूल मार्ग और अपने स्वयं के कस्टम पेज दोनों के आधार पर मेनू जेनरेट करना होगा। मैं सोच रहा था कि सोनाटा के पास मुझे अपना खुद का मेनू बनाने के बजाय yml फ़ाइल या किसी अन्य आसान तरीके से ऐसा करने का कोई तरीका है। मुझे कल्पना है कि मैं ऐसा पहला नहीं हूं जो समान कार्यक्षमता चाहता है, लेकिन मुझे ऐसा कोई उदाहरण नहीं मिला जो ऐसा करता है। –
पता नहीं है कि अपना खुद का मेनू बनाने का कोई दूसरा तरीका है या नहीं, आप अपने पेज के वर्तमान मार्ग की जांच करके अपने स्वयं के लिंक भी सेट कर सकते हैं और अपना खुद का एचटीएमएल जोड़ सकते हैं, यह करने का एक गंदा तरीका है लेकिन काम करेगा। – HypeR
दरअसल। एक और तरीका एक मॉडल के लिए एक एडमिन क्लास सेट करना होगा जो ओआरएम से जुड़ी एक इकाई नहीं है। मैंने इस तरह के बारे में चर्चा देखी है लेकिन फिर से, इसे कैसे किया जाए इस पर कोई उदाहरण नहीं मिला। यह निश्चित रूप से काम करेगा क्योंकि मैं वर्तमान मॉडल के रूटकोलेक्शन में मार्ग जोड़ सकता हूं और कस्टम क्रियाओं को लागू कर सकता हूं। दुर्भाग्यवश ऐसा कुछ है जिसके बारे में मुझे कुछ भी नहीं मिला या यदि यह भी संभव है। –