< návrat zpět

Diskuse


Téma: hcm modul rss

Zaslal/a 25.10.2013 6:44

Dobrý den,
Uvažuje že v nové verzi bude u diskuse pod článkem fungovat hcm modul?
Jedná se mne o to že při psaní komentářů chci vložit formatovany zdrojovy kód pomocí mého hcm modulu ale toto nefunguje. Jasně mohu si upravit RS ale to bych musel dělat pri každé nové verzi a to je opruz, hlavně kde brát ten drahoceny čas na vysedavani u pc.

Předem děkuji za jakoukoliv odpověď.
Hezký prodlouzeny víkend!

Zaslat odpověď >

Strana:  1 2   další »
#018336
HCM modul v komentarich? Nemyslis spis BBCode tag? Vlastni si muzes implementovat pomoci extend udalosti.
#018339
Zdravim,
nemyslim BBCode tag.
Na http://www.prochazka.profitux.cz/index.php?a=programy/wwio.dll-s-podporou-usb2lpt je muj clanek a je tam pouzit v C++ , ktery je formatovan pomoci HCM modulu. Pod clankem v komentarich je ukazka jak onu knihovnu pouzit a kod bych take chtel formatovat inim HCM modulem ale komentare nejsou prohaneny pres HCM moduly.

Jak implementovat extend udalosti, to fakt nemam tuseni. Extend udalosti znamenaji zasah do stavajiciho kodu? Tomu bych se chtel vyhnout.
#018340
To je jedno že nemyslíš BBCode tag. HCM moduly jsou pro obsah stránek a článků. Pokud chceš mít nějakou funkcionalitu navíc, musíš si implementovat nový BBCode tag. Ty jsou vyhodnocovány v komentářích. Extend událost právě zásah do systému není.
#018342
Zdravim,

pokousel jsem se implementovat extend událost dle:
http://sunlight.shira.cz/dokumentace/pluginy/extend#a_cat_6_bbcode
a nepovedlo se. System udalost neregistruje. Je treba udalost konkretne nekde jeste zapnout?
Vytvoril sem adresar code v plugins. Tam sem vytvoril soubor code.php a v nem sem implementoval registraci funkci:

_extend('reg', 'bbcode.extend.tags', '_plugin_add_Geshy_tag');
_extend('reg', 'bbcode.extend.proc', '_plugin_Parse_Geshy_tag');

a provedl jednoduche funkce. Na zacatku souboru code.php
je: if (!defined('_core')) die; na tento prikaz sem nastavil breakpoint a spustil cely system a nic se nestalo. Kdyz sem najel na zadat novy komentar, mela by se spustit funkce _plugin_add_Geshy_tag, abych mohl zadat novou ikontu vedle tlacitka Ukazka. Ale neprobehne uz registrace techto funkci. To je potreba nejak externe spustit sript */plugins/extend/code/code.php ?

diky za informace

p.s. lze presneji vysvetlit co znamenaji nasledujici argumenty?

/* 'tag' => array(
0 => pair 1/0,
1 => arg 1/0,
2 => nestable 1/0,
3 => can-contain-children 1/0,
4 => button-icon(null = none | 1 = template | string = path))
to posledni jsem pochopil, null or default icon or pointer to patch picture
*/
#018353
Hezky den,
uz sem na to prisel, je to potreba jeste povolit v konfiguraci webu.

Jen bych poprosil o podrobnejsi popis struktury TAGS.

A lze nejak jeste pridat prvek listbox? Jde mne o to ze na mem webu se muze vyskytovat ruzne jazyky a tudis bude potreba vkladat ruzne kody a kazdy jazyk pouziva jina klicova slova a jinak se barevne oznacuje a formatuje. A v listboxu by si autor prispevku vybral odpovidajici jazyk.
#018354
Mam novou ikonu definovanou takto:

function _plugin_add_Geshy_tag($args){
$args["tags"]["geshi"][0] = TRUE; //0 => pair 1/0, parovy tag
$args["tags"]["geshi"][1] = TRUE; //1 => arg 1/0,
$args["tags"]["geshi"][2] = TRUE; //2 => nestable 1/0,
$args["tags"]["geshi"][3] = TRUE; //3 => can-contain-children 1/0,
$args["tags"]["geshi"][4] = _indexroot. "plugins/extend/web.code/geshi.png"; // 4 => button-icon(null = none | 1 = template | string = path
}

a druhou funkci na upravu formatovani takto, je to jen prazdne telo s pokusnou vetou:

function _plugin_Parse_Geshy_tag($args){

$dd = "<p>Výstup ukázkové funkce při události <code>bbcode.extend.proc</code>";

}
nejde tu o pokusnou vetu, ale o to ze po zavolani funkce: _plugin_Parse_Geshy_tag je parametr $args prazdny.

funkci registruji takto:
_extend('reg', 'bbcode.extend.proc', '_plugin_Parse_Geshy_tag');

v prispevku je ulozeno toto:

[geshi]BYTE WINAPI ReadData(BYTE a) {
BYTE IoData[1];
DWORD BytesRet;
IoData[0] = a|0x10; // set the bit for read operations
DeviceIoControl(hUSB_LPT,IOCTL_VLPT_OutIn,IoData,sizeof(IoData),IoData,sizeof(IoData),&BytesRet,NULL);
return IoData[0];
}[/geshi]

tento text je videt jen kdyz edituji prispevek.

kde je problem?
#018358
Vystup tagu musis vratit pomocu return.
#018360
Zdravim, nefunguje to.

modul mam takto:

<?php
// Autor www.prochazka.zde.cz
// verze souboru v1.0.0.
// dne 28.10.2013 - vztvoreni modulu

/* ---- kontrola jadra ---- */
if (!defined('_core')) die;

function _plugin_add_Geshy_tag($args){
$args["tags"]["geshi"][0] = TRUE; //0 => pair 1/0, parovy tag
$args["tags"]["geshi"][1] = TRUE; //1 => arg 1/0,
$args["tags"]["geshi"][2] = TRUE; //2 => nestable 1/0,
$args["tags"]["geshi"][3] = TRUE; //3 => can-contain-children 1/0,
$args["tags"]["geshi"][4] = _indexroot. "plugins/extend/web.code/geshi.png"; // 4 => button-icon(null = none | 1 = template | string = path

return;
}

function _plugin_Parse_Geshy_tag($args){

$dd = "<p>Výstup ukázkové funkce při události <code>bbcode.extend.proc</code>";
//return;

}

/* ---- registrace pluginu ---- */
_extend('reg', 'bbcode.extend.tags', '_plugin_add_Geshy_tag');
//bbcode.extend.tags -> přidání tagů do parseru -> tags je asociativní pole již existujících tagů ve formátu: -> 'tag' => array(0 => pair 1/0, 1 => arg 1/0, 2 => nestable 1/0, 3 => can-contain-children 1/0, 4 => button-icon(null = none | 1 = template | string = path))

_extend('reg', 'bbcode.extend.proc', '_plugin_Parse_Geshy_tag');
//bbcode.extend.proc -> přidání tagů do processoru -> tags je asociativní pole již existujících extra callbacků ve formátu: -> 'tag' => callback(argument, innerBuffer)


zkousel jsem ruzne kombinace a pouziti returnu a nic.

proste se nepredava pozadovany parametr, cely kod sem trasoval, tak nevim co presne je pozadovano.

toto je urivek vaeho kodu
function _parseBBCode_processTag($tag, $arg = '', $buffer = null)
{

static $ext;
if (!isset($ext)) {
$ext = array();
_extend('call', 'bbcode.extend.proc', array('tags' => &$ext));
}

if (isset($ext[$tag])) return call_user_func($ext[$tag], $arg, $buffer);
switch ($tag) {

zde je videt ze prvni volani funkce _extend('call', 'bbcode.extend.proc', array('tags' => &$ext)); nepredava parametr $buffer ve kterem jsou ty data na parsovani a volani if (isset($ext[$tag])) return call_user_func($ext[$tag], $arg, $buffer); se neprovede :(.

kdyz jsem v souboru function.php na radku 1177 upravil stavajico kod
z _extend('call', 'bbcode.extend.proc', array('tags' => &$ext));
na:
_extend('call', 'bbcode.extend.proc', array('tags' => &$buffer));
Tak to funguje, ale nechce se mne upravovat kod RS.

Co stim?
Provedete oficialni opravu?
#018365
Problem není v Sunlight CMS!
máte to prostě špatně napsaný, mám extend na BBCody pro 7.5.3 a funguje bez problému... největším problémem jsou ty vaše "úpravy RS"

jednoduché, krátké, přehledné!

<?php

/* ---- kontrola jadra ---- */
if (!defined('_core'))
die;

// registrace do udalosti
_extend('regm', array(
// registraci syntaxe tagu
'bbcode.extend.tags' => function($args) {
// parovy 1/0; ma argument 1/0; muze byt umisten v jinych tazich 1/0; muze obsahovat jine tagy 1/0; null=bez obrazku
$args['tags']['center'] = array(true, false, true, false, null);
},
// registraci provedeni tagu
'bbcode.extend.proc' => function($args) {
// vyhodnoceni tagu
$args['tags']['center'] = function($argument, $obsah) {
$output = "<div style='text-align:center;'>" . $obsah . "</div>";
return $output;
};
}
));
#018366
@hacesoft: Nejedna se o chybu v systemu, nybrz o chybu na tve strane. Ocividne nerozumis onomu uryvku z PHP kodu systemu, ktery jsi uvedl. V dokumentaci je chovani techto udalosti jasne popsane (dobre, mozna ne az tak jasne, neni to navod krok po kroku).

Strana:  1 2   další »