Tovább a tartalomhoz

Egyedi kód átvezetése: JavaScript és PHP

Hogyan működik a modulok automatikus frissítése a Velocity motorra, és mit kell lecserélni az SR6-os egyedi JavaScript és PHP kódban.

Az SR7 Velocity renderelőmotor a korábbi Genesis motorhoz képest könnyű, adatvezérelt működést hoz. A Genesis motorral készült, régi (6.7 előtti) modulok frissítését a bővítmény a háttérben magától elvégzi, így a megjelenítés gyorsabb és simább lesz. Az egyedi PHP, CSS és JavaScript kódban viszont van néhány elavult elem, amelyet kézzel kell átírni. Ez a fejezet a JavaScript és a PHP változásait gyűjti össze; a HTML és CSS változásai a kimeneti HTML és CSS szelektorok változásai fejezetben vannak.

  • JavaScript: a jQuery helyett a bővítmény saját JavaScript API-ját használja. Az átállás előtt tartalék megoldások működnek, de érdemes minél előbb az új API-ra váltani. Ahol lehet, a bővítmény a régi jQuery-kódot is megpróbálja a mostani motorhoz illő JavaScriptre alakítani. Ha egy kód túl összetett a teljes átalakításhoz, változatlan marad, de az osztályneveket és szelektorokat ilyenkor is lecseréli, amennyire lehet. Az eseményfigyelők a jQuery bind() helyett natív JavaScript figyelők.
  • PHP: módosultak a globális változók, néhány filter megszűnt, több függvényt átneveztek vagy lecseréltek.
  • CSS és HTML: új osztálynevek, HTML-elemek és adatszerkezetek jelentek meg. Az Egyedi CSS ablakba írt kódot a frissítéskor a bővítmény megpróbálja átírni, és a régi osztály- vagy elemneveket az újakra cseréli.
  • Elavulási értesítések: ha egy elavult elemet használsz, erről a böngésző konzoljában és a Slider Revolution vezérlőpultján kapsz értesítést.

Hogyan megy végbe a modulok frissítése

Szekció neve “Hogyan megy végbe a modulok frissítése”
  1. A modul mentésekor az adatok mindkét motor (Genesis és Velocity) formájában tárolódnak.
  2. A frontenden a bővítmény először a Velocity formátumú adatot próbálja betölteni.
  3. Ha az nincs meg, a régi formátumú adatot kéri le, és menet közben frissíti.

Ha szükséges, bekapcsolható a régi renderelő kényszerített használata, de érdemes minél előbb a mostani motorra állni.

SR6 (Genesis) SR7 (Velocity)
revapi.revstart(); revapi.start(); (ha az Api Wait be van kapcsolva)
revapi.revpause(); revapi.pause();
revapi.revresume(); revapi.resume();
revapi.revprev(); revapi.prevSlide();
revapi.revnext(); revapi.nextSlide();
revapi.revscroll(offset); revapi.scroll(offset);
revapi.revremoveslide(slideindex); revapi.removeSlide(slidekey);
revapi.revshowslide(2); revapi.showSlide(2);
revapi.revcallslidewithid('rs-1007'); helyette a revapi.showSlide()
revapi.revmaxslide(); revapi.maxSlide(); (a diák száma, nem csak a navigációval elérhetőké)
revapi.revcurrentslide(); revapi.currentSlide(); (ilyen adatot ad: {index: 2, key: '281', order: 3})
revapi.revlastslide(); revapi.lastSlide(); (a navigációval elérhető utolsó dia)
revapi.revredraw(); revapi.redraw();
revapi.revkill(); revapi.kill();
revapi.revGoToFrame({layerid:'',frame:'',children:true}) revapi.playScene('layer','scene');

A showSlide() lehetséges argumentumai:

Érték Jelentés
"last" az utolsó dia
"first" az első dia
"random" véletlenszerű dia
"id" a megadott azonosítójú dia
"+2" két diával előre
"-1" egy diával vissza
0 és 100 között szám a megadott indexű dia (0-tól)

A playScene() példája: revapi.playScene('SR7_1051_1-281-0','scene_1');

A régi események jQuery bind() hívással működtek:

revapi.bind("<eventname>",function (e,data) {
//egyedi kód
});

Az újak natív figyelőkkel:

document.addEventListener("<eventname>", function (e,data) {
//egyedi kód
});
SR6 esemény SR7 esemény Az eseményben kapott adat
revolution.slide.onloaded sr.module.ready id: a modul azonosítója
revolution.slide.onchange sr.slide.afterChange id, current: { index, key, order }, previous: { index, key, order }
revolution.slide.onpause sr.slide.pause id
revolution.slide.onresume sr.slide.resume id
revolution.slide.onvideoplay és revolution.slide.onvideostop sr.media.update id, player (a lejátszó API-ja), type (html5, youtube, vimeo), options (médiabeállítások), layer (a médiát tartalmazó réteg), state (playing, paused, finished), skey (a dia kulcsa)
revolution.slide.onstop sr.module.finished id
revolution.slide.onbeforeswap sr.slide.beforeChange id, current: { index, key, order }, next: { index, key, order }
revolution.slide.onafterswap sr.slide.afterChange id, current, previous (mint fent)
revolution.slide.slideatend sr.slide.ended id, current: { index, key, order }
revolution.slide.layeraction sr.layer.action lásd lent
RS_MODALOPENED (régi: jQuery.fn.revolution.document.on('RS_MODALOPENED', …)) sr.modal.loaded, sr.modal.open, sr.modal.close id, alias: a modul álneve

Az sr.layer.action esemény adatai:

Mező Jelentés
id a modul azonosítója
eventtype a rétegakció típusa: enterstage, enteredstage, leavestage, leftstage, framestarted, frameended
scene a réteg éppen hívott jelenete (in, out, scene_1 és így tovább)
frame az éppen feldolgozott keret
layerid a réteg azonosítója vagy kulcsa
caller az indító folyamat (például „action”)
layertype a réteg típusa: container, text, image, shape és így tovább
layersettings az összes előre megadott beállítás

Példa figyelőre:

document.addEventListener("sr.slide.afterChange", function(e) {
// e.id, e.current, e.previous
});

A korábban global $<változó> formában definiált változók az $SR_GLOBALS tömbbe kerültek.

SR6 SR7
$rs_material_icons_css $SR_GLOBALS['icon_sets']['Materialicons']['css']
$rs_material_icons_css_parsed $SR_GLOBALS['icon_sets']['Materialicons']['parsed']
$fa_icon_var $SR_GLOBALS['icon_sets']['FontAwesome']
$fa_var $SR_GLOBALS['icon_sets']['FontAwesome']
$pe_7s_var $SR_GLOBALS['icon_sets']['PeIcon']
$rs_css_collection $SR_GLOBALS['collections']['css']
$rs_ids_collection $SR_GLOBALS['collections']['ids']
$rs_js_collection $SR_GLOBALS['collections']['js']
$revslider_fonts $SR_GLOBALS['fonts']
$revslider_is_preview_mode $SR_GLOBALS['preview_mode']
$revslider_save_post $SR_GLOBALS['save_post']
$revslider_addon_notice_merged $SR_GLOBALS['addon_notice_merged']
$revslider_animations $SR_GLOBALS['animations']
$rs_loaded_by_editor $SR_GLOBALS['loaded_by_editor']
$rs_preview_mode $SR_GLOBALS['preview_mode']
$rs_do_init_action $SR_GLOBALS['data_init']
$rs_slider_serial $SR_GLOBALS['serial']
$rs_revicons $SR_GLOBALS['icon_sets']['RevIcon']
$rs_double_jquery_script $SR_GLOBALS['js_init']

Ezek a filterek már nem léteznek:

  • revslider_set_template_slides
  • revslider_set_template_sliders
  • revslider_slide_initByTwitter_pre
  • revslider_slide_initByTwitter_post

Az SR6 (Genesis) PHP-függvényei a 6.7-es verziótól elavultak voltak, a 7.0-ban pedig megszűntek. A RevSliderSlider->getAllSliderAliases() függvény elavult jelölést kapott.

SR6 SR7
RevSliderAdmin->activate_plugin() RevSliderLicense->active_plugin()
RevSliderAdmin->deactivate_plugin() RevSliderLicense->deactivate_plugin()
RevSliderFunctions->getVal() RevSliderFunctions->get_val()
RevSliderFunctions->cleanStdClassToArray() RevSliderFunctions->class_to_array_single()
RevSliderOutput->isPutIn() RevSlider7Output->check_add_to()
RevSliderSlide->getID() RevSliderSlide->get_id()
RevSliderSlide->getSliderID() RevSliderSlide->get_slider_id()
RevSliderSlide->getImageUrl() $this->image_url
RevSliderSlide->setLayersRaw() RevSliderSlide->set_layers_raw()
RevSliderSlide->saveLayers() RevSliderSlide->save_layers()
RevSliderSlide->getParam() RevSliderSlide->get_val($this->params)
RevSliderSlider->getParam() RevSliderSlider->get_param()
RevSliderSlider->getParams() RevSliderSlider->get_params()
RevSliderSlider->getID() RevSliderSlider->get_id()
RevSliderSlider->getArrSliders() RevSliderSlider->get_sliders()
RevSliderSlider->initByMixed() RevSliderSlider->init_by_mixed()
RevSliderSlider->initByID() RevSliderSlider->init_by_id()
RevSliderSlider->initByAlias() RevSliderSlider->init_by_alias()
RevSliderSlider->getAlias() RevSliderSlider->get_alias()
RevSliderSlider->isAliasExistsInDB() RevSliderSlider->check_alias()
RevSliderSlider->getShortcode() RevSliderSlider->get_shortcode()
RevSliderSlider->getFirstSlideIdFromGallery() RevSliderSlider->get_first_slide_id_from_gallery()
RevSliderSlider->isSlidesFromPosts() RevSliderSlider->is_posts()
RevSliderSlider->isSlidesFromStream() RevSliderSlider->is_stream()
RevSliderSlider->getNumSlidesRaw() RevSliderSlider->get_slides()
RevSliderSlider->getNumSlides() RevSliderSlider->get_slides()
RevSliderSlider->getNumRealSlides() RevSliderSlider->get_wanted_slides()
RevSliderSlider->getTitle() RevSliderSlider->get_title()
RevSliderSlider->getArrSlidersShort() RevSliderSlider->get_sliders_short()
RevSliderSlider->initByDBData() RevSliderSlider->init_by_data()
RevSliderSlider->isAliasExists() RevSliderSlider->alias_exists()
RevSliderSlider->getArrSlideNames() RevSliderSlider->get_slide_names()
RevSliderSlider->getSlidesFromGallery() RevSliderSlider->get_slides()
RevSliderSlider->importSliderFromPost() RevSliderSlider->import_slider()
RevSliderSlider->deleteSlider() RevSliderSlider->delete_slider()
RevSliderSlider->getAllSliderForAdminMenu() RevSliderSlider->get_slider_for_admin_menu()
RevSliderFront->putAdminBarMenus() RevSliderFront->add_admin_bar()

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások