Yii Framework Forum: Un aiuto per la mia extension: YiiMarkitup - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Un aiuto per la mia extension: YiiMarkitup Rate Topic: -----

#1 User is offline   Diegovl 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 27-February 11

Posted 18 June 2011 - 09:00 AM

Ciao ragazzi, prima che avevo qualche minuto libero ho provato a creare un'extension che mi farebbe comodo, un widget per rimpiazzare la textarea con il plugin di jquery Markitup.

<?php

class YiiMarkitup extends CInputWidget {
    
    public function init()
    {
        parent::init();
        
        $assetsFolder=Yii::app()->assetManager->publish(
            Yii::getPathOfAlias('application.extensions.yiimarkitup.assets')
        );

        Yii::app()->clientScript->registerCssFile($assetsFolder.'/skins/markitup/style.css');
        Yii::app()->clientScript->registerCssFile($assetsFolder.'/sets/bbcode/style.css');
        Yii::app()->clientScript->registerScriptFile($assetsFolder.'/jquery.markitup.js');
        Yii::app()->clientScript->registerScriptFile($assetsFolder.'/sets/bbcode/set.js');
        Yii::app()->clientScript->registerCoreScript('jquery');
        
        if (isset($this->htmlOptions['id']))
            $id = $this->htmlOptions['id'];
        else
            $id = CHtml::activeId($this->model, $this->attribute);

        Yii::app()->clientScript->registerScript("{$id}",
            '$(document).ready(function() {
                $("textarea").markItUp(mySettings);
            });'
        );
    }
    
    public function run()
    {
        echo CHtml::activeTextArea($this->model, $this->attribute, $this->htmlOptions);
    }
    
}


Mi sono trovato difronte a due problemi.

1. vorrei includere nell'assets direttamente tutti i sets (bbcode, html, wiki...);
L'unica soluzione che mi è venuta in mente è piazzare una variabile che dipende dalla scelta dell'utente in fase di inizio widget, in questo modo:
Yii::app()->clientScript->registerCssFile($assetsFolder.'/sets/'.$type.'/style.css');
Yii::app()->clientScript->registerScriptFile($assetsFolder.'/sets/'.$type.'/set.js');


Però non saprei come recuperare questo $type definito dell'utente, sicuro però ci sono metodi più puliti e logici, vero?

2. la config dello script si trova nel file set.js in formato json. Come posso fare un merge di queste opzioni con alcune definite sempre dall'utente quando chiama il widget?
0

#2 User is offline   Diegovl 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 27-February 11

Posted 19 June 2011 - 07:41 AM

Ho risolto (grazie anche al forum inglese u.ù).

Appena finisco la classe (anche se ho notato che c'era una bella e pronta >_>") posto la "soluzione".
0

#3 User is offline   Attilio 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 98
  • Joined: 10-May 11
  • Location:Bari, Italy and Guatemala, Guatemala

Posted 28 June 2011 - 05:22 PM

qual é la pronta? CMarkdown?
Extension yii-jpegcam: embed a webcam and take photos
0

#4 User is offline   Diegovl 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 27-February 11

Posted 30 June 2011 - 06:09 AM

No, parlavo di extension già pronta.

Link
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users