Diskuse

Téma: Přidání nového typu stránky (Úprava)

Ahoj všem, v diskusi jsem nový ale Sunlight používám již na několika projektech již několik let.
Každopádně až nyní jsem se rozhodl začít víc přidávat moduly a vyhnout se tak úpravám samotného jádra systému.

Můj problém je následující - Chci vytvořit vlastní typ stránky, to není vůbec žádný problém. Můj problém je ten, že mi nefungují následující parametry, a já nevím proč:

_extend('reg', 'ppage.'.EXT_PAGE_CONTACT.'.edit', function($args){
$args['es_settings'] = "Html kód, který se ale nezobrazí";
});

nebo:

$args['es_enable'] = false; a $args['es_file'] = "cesta";

Hodnoty v proměnných neřešte, může tam být cokoliv ale jde o to, že mi vůbec nefungují a nevím proč.
Dokumentace celkově k tvorbě vlastního extend pluginu je pro mě trošku chaotická. 😁
postZaslat odpověď
dlouho jsem se tvorbou vlastního typu stránky nezabýval, měl jsem to na exteráku v archivu věcí pro SL 7.5.2, ale asi se tam nic nezmenilo..

da se to napsat i hezky, jako tridu a zaregistrovat pres "regm" jako callback... ale nemam to ted nikde hotove a cas ted taky nemam....

<?php

/* ---- kontrola jadra ---- */

if (!defined('_core'))
die;

/* ---- funkce pluginu - ADMINISTRACE ---- */

// registrace typu stranky
_extend('reg', 'ppage.reg', function($args) {
$args['infos']['mytype'] = 'MyType';
});

// uprava stranky
_extend('reg', 'ppage.mytype.edit', function($args) {

global $_lang;

// mapa pro ulozeni var1-4
$args['extra']['es_savemap'] = array(
array("var1", false, 2, false),
array("var2", false, 2, "15"),
array("var3", true, 0, false),
array("var4", true, 0, false)
);

// nastaveni
$artorder_select = "";
for ($x = 1; $x <= 4; ++$x) {
if ($x == $args['extra']['query']['var1']) {
$selected = " selected='selected'";
} else {
$selected = "";
}
$artorder_select .= "<option value='" . $x . "'" . $selected . ">" . $_lang['admin.content.form.artorder.' . $x] . "</option>";
}

$args['extra']['es_settings'] = $_lang['admin.content.form.artorder'] . " <select name='var1'>" . $artorder_select . "</select>&nbsp;&nbsp;" . $_lang['admin.content.form.artsperpage'] . " <input type='text' name='var2' value='" . (true === $args['extra']['new'] ? "15" : $args['extra']['query']['var2']) . "' class='inputmini' /></span>
</span>&nbsp;&nbsp;<span class='customsettings'>
<label><input type='checkbox' name='var3' value='1'" . _checkboxActivate($args['extra']['query']['var3']) . " /> " . $_lang['admin.content.form.showinfo'] . "</label>
<label><input type='checkbox' name='var4' value='1'" . _checkboxActivate($args['extra']['query']['var4']) . " /> " . $_lang['admin.content.form.showpics'] . "</label>
";
});

// smazani stranky
_extend('reg', 'ppage.mytype.delete.do', function($args) {

// nedelame nic.. stranka nema zadne "souvisejici polozky", ktere by bylo
// potreba smazat, takze nechame system, aby pokracoval a stranku vymazal
$args['handled'] = true;
});

/* ---- funkce pluginu - STRANKY ---- */

// registrace skriptu pro zobrazeni
_extend('reg', 'ppage.mytype.show', function($args) {
$args['file'] = __DIR__ . DIRECTORY_SEPARATOR . 'app/category/show_cat.php';
});

// info v rozcestniku
_extend('reg', 'ppage.mytype.interinfo', function($args) {
$args['output'] = 'Info v rozcestníku pro ukázkovou plugin stránku';
});
Přesná odpověď na můj dotaz. Díky moc! :-)

Výsledek:
Potřeboval jsem, aby klient mohl zadávat galerie, ale né pomocí HCM modulu k sekcím:

_extend('reg', 'ppage.'.EXT_PAGE_CONTACT.'.edit', function($args){
global $_lang;

$args['extra']['es_savemap'] = array(
array("galerie", false, 0, true)
);

$args['extra']['es_settings'] = "
<strong>Galerie:</strong> <label><input type='text' name='galerie' value='" . $args['extra']['query']['galerie'] . "'' /></label>
";
});

Výpis na stránku:
$gallery = _parseHCM($query['galerie']);

$content .= "<h2>" . $query['title'] . "</h2>";

$content .= _parseHCM($query['content']);
$content .= "<br /><center>" . _parseHCM("[hcm]gallery,upload/galerie/" . $gallery . "/,128,50[/hcm]") . "</center>";

Dřív jsem toto řešil přímou úpravou sekcí, ale v případě že klient nechtěl galerii u nějaké sekce, tak se bál co se stane když pole zůstane nevyplněné. Takhle si vybere buďto sekci, nebo sekci s galerií.

Celkově systém galerií by chtěl přepracovat tak, aby šla galerie přidávat "kdekoliv" a "intuitivně". Uvidím do budoucna, zdali to nějak nevyřeším a nepodělím se s vámi.
Nemůžeš poslat odkaz kde to máš a jak to funguje.