2012-10-16 24 views
5

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

वाईआई का उपयोग करके, मेरे पास एक क्लाइंट मॉडल है और मैं इस क्लाइंट से संबंधित सभी नोटों को एक div में प्रदर्शित करना चाहता हूं और एक ही webroot/client/view/client_id पेज में सही इन नोटों के लिए CRUD कार्यक्षमता है।

निकटतम कार्यान्वयन मैं ऑनलाइन पाया jQuery, jeditable में विशुद्ध रूप से किया जाता है, लेकिन बनाने और हटाने की कार्यक्षमता का अभाव है। इसके अलावा, यह कोई Yii मॉडल है (CActiveRecord) समर्थन, जिसका मतलब है कि वाईआई के एमवीसी सेटअप का लाभ उठाए बिना नियंत्रक कोड में आगे और पीछे संचारित डेटा को हार्ड-वायर करने की आवश्यकता है।

मेरे पास अब क्या है: एक छुपा फॉर्म जो AJAX (forcCreation) और एक Zii CListView विजेट (पुनर्प्राप्ति के लिए) के माध्यम से सबमिट किया गया है, जो अंतर्निहित zii विजेट अद्यतन कार्यक्षमता $.fn.yiiListView.update('clistview_id'); का लाभ उठाता है, लेकिन मैं बल्कि Yii/Zii विजेट, jquery, या उन लोगों के संयोजन का उपयोग करके खेल के यू और डी भाग पर फंस गया।

मेरे क्लाइंट/view.php टुकड़ा:

<div class="note_create"> 
    <?php echo CHtml::button('Add new note',array('class'=>'create-note-button')) ?> 
    <div class="create-note-form" style="display: none;"> 
    <!-- _createNote is just a CActiveForm with a CHtml::ajaxSubmitButton--> 
    <?php $this->renderPartial('_createNote', array('client' => $model, 'note' => $note)); ?> 
    </div> 
</div> 
<div class="note_browser"> 
    <?php $this->widget('zii.widgets.CListView', array(
     'id' => 'clist_note_browser', 
     'dataProvider' => $model->noteSearch(), 
     'itemView' => '_note', // refers to the partial view named '_note' 
     'emptyText' => 'No notes found.', 
     'sortableAttributes' => array(
      'note.title', 
      'note.last_modify' 
     ), 
     )); 
    ?> 
</div> 

एक बहुत ही सरल नोट मॉडल:

<?php 

/** 
* This is the model class for table "note". 
* 
* The followings are the available columns in table 'note': 
* @property string $nid 
* @property string $title 
* @property string $content 
* @property string $first_create 
* @property string $last_modify 
* 
* The followings are the available model relations: 
* @property ClientNote $client ClientNote an intermediate table with two columns: nid, cid 
*/ 
class Note extends CActiveRecord 
{ 
    ... 
    public function relations() 
    { 
     return array('client' => array(self::HAS_ONE, 'ClientNote', 'nid'),); 
    } 
    ... 
} 

किसी को भी किसी भी सुझाव हैं?

http://help.discretelogix.com/php/yii/enable-in-place-editing-in-yii-grid.htm

के बाद आप समझ में आया, आप करता है कि इस

आप जाँच कर सकते हैं अपने खुद के विजेट बनाने की जरूरत:

+0

वाईआई के जीआई मॉड्यूल में इस प्रकार का विजेट है (मॉडल पीढ़ी और अन्य सामान में टेबल उपसर्ग संपादित करने के लिए)। इसके कोड पर एक नज़र डालें। लेकिन मुझे लगता है कि केवल UPDATE को – dInGd0nG

उत्तर

0

शुरुआत के लिए इस बाहर की जाँच, यह आप को समझने के लिए कि कैसे आप चाहते हैं मदद करता है मौजूदा एक्सटेंशन कि कोशिश करता है करने के लिए बाहर तुम क्या कर रहे हैं के बाद: http://www.yiiframework.com/extension/editablegridview/

http://yiitutorials.net/easy/creating-a-widget-with-the-yii-framework

http://www.yiiframework.com/extension/escrollablegridview/

आपको इन सभी का अध्ययन करने और समझने की ज़रूरत है कि वे कैसे काम करते हैं, इसलिए आपको एक लेने और अपनी आवश्यकताओं के अनुरूप विस्तार करने में सक्षम होना चाहिए। सौभाग्य।

+0

ग्रेट समर्थित है। मैं इन सब का अध्ययन करूंगा और उम्मीद करता हूं कि वे जल्द ही कैसे काम करेंगे! धन्यवाद। – akredible

+0

हम, मुझे आश्चर्य है कि क्या पहले से ही एक विजेट है जो मैं कर रहा हूं ... यहां तक ​​कि एक ज़ेंड भी ठीक है। प्रोजेक्ट टाइम बाधा के रूप में इन-प्लेस क्रूड विजेट के लिए Cgridview को अनुकूलित करने में समय बर्दाश्त नहीं कर सकता है (नोट्स, आईएमओ प्रदर्शित करने के लिए Cgridview भी सर्वश्रेष्ठ विजेट नहीं हो सकता है)। अभी के लिए, मैं जगह में सीआरडी के लिए जाना होगा और नोट को अपने पृष्ठ में अपडेट करूँगा। मैं CListView में आइटमव्यू में एक साधारण AJAX बटन के साथ डी भाग को कार्यान्वित करने की योजना बना रहा हूं। – akredible

+0

ऊपर दिए गए @ pentium10 [link] (http://help.discretelogix.com/php/yii/enable-in-place-editing-in-yii-grid.htm) jeditable का उपयोग करके अद्यतन कार्य को संबोधित करने में सक्षम था। उचित डेटा (नोट आईडी) के साथ 'CHtml :: AJAXLink' आइटम आइटम (CListView द्वारा उपयोग किया गया) में एक 'CHtml.yiiListView.update (' clistview_id ') 'CListView विजेट रीफ्रेश करने के लिए – akredible