Hirdetés
-
PROHARDVER!
Ajánlott szakirodalmak a teljesség igénye nélkül (a lista még bővülhet):
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
No, sorry, kicsit több lett, mint negyed óra, társaságom lett, aztán végül már nem volt energiám ezzel foglalkozni.

Ami működőképes az átméretezésre, most modulból méretezek át, de ugyanezt meg lehetne tenni sminkből is (végül is sminkelési feladat inkább, mivel adott helyen szeretnéd átszabni, a megjelenésnek megfelelően, de a lényeg ugyanaz):
/**
* Implements hook_form_alter().
*/
function testmodule_form_alter(&$form, &$form_state, $form_id) {
// az after_build függvényben már megvannak az egyes elemek HTML id-jai (itt még nem)
$form['#after_build'][] = 'testmodule_form_alter_after_build';
}
/**
* Form after build function
*/
function testmodule_form_alter_after_build($form, &$form_state) {
$form_id = $form['#form_id'];
switch ($form_id) {
// most a példa kedvéért az Article content type formjánál fogom átszabni a CKEditor szélességét, magasságát
case 'article_node_form':
drupal_add_js(drupal_get_path('module', 'testmodule') . '/js/ckEditorResizing.behaviors.js', array('type' => 'file', 'scope' => 'footer', 'weight' => 100));
// itt az Article content type body-jánál a summary-hez és a fő törzsszöveghez tartozó CKEditort fogom átméretezni!
// a HTML id azért kell, mert a CKEDITOR.instances tömböt fogjuk felhasználni a JS-kódban, és ebben HTML id-k kulcsai szerint vannak meg az objektumok, a rá vonatkozó attribútumok és metódusok
drupal_add_js(array(
'testmodule' => array(
'ckEditorResizing' => array(
array(
'id' => $form['body']['und'][0]['summary']['#id'],
'width' => 400,
'height' => 200
),
array(
'id' => $form['body']['und'][0]['value']['#id'],
'width' => 300,
// 'width' => '50%',
'height' => 600
)
)
)
), 'setting');
break;
}
return $form;
}Aztán a testmodule/js könyvtárban van egy
ckEditorResizing.behaviors.js
fájl, aminek a tartalma a következő:(function ($, Drupal) {
Drupal.behaviors.ckEditorResizing = {
attach: function (context, settings) {
var self = this;
// némi késleltetéssel kell átméretezni, miután inicializálódott
window.setTimeout(function(){
self.resizeCKEditor(context, settings);
}, 600);
},
resizeCKEditor : function (context, settings) {
if(settings['testmodule']['ckEditorResizing']){
var ckEditorResizingData = settings['testmodule']['ckEditorResizing'];
for(var i = 0; i < ckEditorResizingData.length; i++){
var ckEditorInstance = CKEDITOR.instances[ckEditorResizingData[i].id];
ckEditorInstance.resize(ckEditorResizingData[i].width, ckEditorResizingData[i].height);
}
}
}
};
})(jQuery, Drupal);Ez csak szemléltetés, biztos lehetne ezen szépíteni (például elég ronda az a multidimenziós tömb valami rendes osztály helyett, de sajnos ezt a multidimenziós tömb szemléletet a 7-es Drupalban (valszeg még 8-asban is) elég sokszor alkalmazzák).
A lényeg tehát, hogy a .resize() metódust hívjuk meg:
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#resizeVonatkozó cikk még:
How Do I Change the Size of the Editor on the Fly?
http://docs.cksource.com/CKEditor_3.x/Howto/Editor_Size_On_The_FlyHa nem érthető, kérdezz.

-
Sk8erPeter
nagyúr
Itt egy hook_form_alter-es megoldást javasol valaki (még nem próbáltam, ez így ér-e valamit):
http://ckeditor.com/comment/39228#comment-39228function MODULODNEVE_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'taxonomy_form_term': // vagy más form_id
$form['MEZONEVE']['description']['#rows'] = 4;
break;
}
}(Szerk.: vagy akár MODULODNEVE helyett sminked neve is szerepelhet.)
Új hozzászólás Aktív témák
- Dell Latitude Precision Üzleti gépek, 2-in-1 gépek, 3-13. gen.
- BESZÁMÍTÁS! Huawei Watch 4 Pro eSIM okosóra garanciával hibátlan működéssel
- Honor 400 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- 0% THM 4 havi részlet beszámítás! RX 9060 XT / 9070 / 9070 XT videokártyák készletről KAMATMENTESEN
- HIBÁTLAN iPhone 11 Pro 256GB Space Grey -1 ÉV GARANCIA - Kártyafüggetlen, MS3173, 100% Akkumulátor
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi




