Fórumok
Csapattag plugin 'Admin UI' Stb...
-
Egy Csapattag pluginon ügyködöm.
Amibe lenne egy olyan, hogy "Feladatkör" ebben lenne felsorolva a csapatagok feladatköre.
Pl.: Híríró, Segítő. esetleg e-sportnál Offense, Defense, Tank, Support. Stb...
Ezek egy külön adatbázisba lennének összeszedve. (team_sod->id->sod)
Majd egy checkboxes kilistázva admin oldalon.
beküldésével vannak gondjaim.
Úgy képzeltem el, hogy az adatbázisban ,-vel elválasztva az id-k.
Így arra gondoltam valahogy implode(',', $sod) használatával
Viszont nem igazán értek a php-hoz sőt semennyire így nem igazán jön össze az elképzelésem.
Segítségeteket kérném ennek a megoldásában.
Ha nem megoldható implode-el esetleg van rá valami alternatív megoldás.eddig jutottam vele:
'sod' => array('title' => LAN_SOD, 'tab' => 0, 'type' => 'method', 'data' => '', 'width' => 'auto', 'writeParms' => '', ),
-
Tovább jutottam, igaz nem úgy ahogy elképzeltem.
Rossz felé kapirgáltam.
'sod' => array('title' => LAN_SOD,'tab' => 0, 'type' => 'method', 'data' => 'array', 'width' => 'auto', 'readParms' => '', 'writeParms' => '', ),
function sod($curval,$mode) { $frm = e107::getForm(); $sql = e107::getDb(); $sod = array(); $sql->gen("SELECT sod_id, sod_name FROM #team_sod"); while ($row = $sql->db_Fetch()) { $sod[$row['sod_id']] = $row['sod_name']; } foreach($curval as $key => $value) { if($key > '0') $x = $key;
$scope_of_duties .= implode(", ", explode("$key",$x."".$sod[$value])); } if($mode == 'read') { return $scope_of_duties; } $options = array('useKeyValues' => 1); return $frm->checkboxes('sod', $sod, $curval, $options); }Most a shortcodes-be kéne segítség.
function sc_sod($parm='') {
global $sql, $sod, $row, $sod_name, $x, $key, $value, $scope_of_duties;
$sql = e107::getDb();
$sod = array();
$sql->gen("SELECT sod_id, sod_name FROM #team_sod");
while ($row = $sql->db_Fetch()) {
$sod_name[$row['sod_id']] = $row['sod_name'];
}
$sod = $this->var['sod'];
foreach($sod as $key => $value) {
$scope_of_duties .= $sod_name[$value];
}
return "<b>".LAN_TEAM_01."</b> ".$sod." ".LAN_LOL."<br />";
} -
Átneveztem a témát így több mindent kérdezhetek és nem csak az admin ui-ról.
Még mindig a shortcodes vagyok elakadva az adatbázisból behívom a$x = $this->var['sod'];
ezel megkapom ezt:array (0 => '4',1 => '5',2 => '6',3 => '7',4 => '8',5 => '9',6 => '10',)
ezt szeretném ezzel kilistázni:foreach($x as $key => $value) { $scope_of_duties .= $value; }
Viszont nem működik valamit biztos kihagyok ebbe kéne a segítség, hogy mit hagyok ki vagy mit írok rosszul.
-
Csak meglett a megoldás végig az orrom előtt volt.
"data->array->Posted data is converted to an e107 array format. (usee107::unserialize()
to decode)".$x = e107::unserialize($this->var['sod']);
Lecseréltem az egészet mert ismerősöm javasolta, hogy inkább json használjak array helyet.
'sod' => array('title' => LAN_SOD, 'tab' => 0, 'type' => 'method', 'data' => 'json', 'width' => 'auto', 'readParms' => '', 'writeParms' => ''),
function sod($curval,$mode) {
$frm = e107::getForm();
$sql = e107::getDb();
$sod = array();
$sql->gen("SELECT sod_id, sod_name FROM #team_sod");
while ($row = $sql->db_Fetch()) {
$sod[$row['sod_id']] = $row['sod_name'];
}
$cval = e107::unserialize($curval);
foreach($cval as $key => $value) {
if($key > '0') $x = $key;
$scope_of_duties .= implode(", ", explode("$key",$x."".$sod[$value]));
}
if($mode == 'read') {
return $scope_of_duties;
}
$options = array('useKeyValues' => 1);
return $frm->checkboxes('sod', $sod, $cval, $options);
}function sc_sod($parm='') {
global $sql, $sod_name, $row, $parm, $team;
$sql = e107::getDb();
$sod_name = array();
$sql->gen("SELECT sod_id, sod_name FROM #team_sod");
while ($row = $sql->db_Fetch()) {
$sod_name[$row['sod_id']] = $row['sod_name'];
}
$array = e107::unserialize($this->var['sod']);
foreach($array as $key => $value) {
if($key > '0') $keys = $key;
$scope_of_duties .= implode(", ", explode("$key",$keys."".$sod_name[$value]));
}
return "<b>".LAN_TEAM_01."</b> ".$scope_of_duties."<br />";
} -
Helló!
Bár segíteni nem tudok, mert nem értek a php programozáshoz, így csak félve kérdezném, hogy a plugin nyilvános lesz-e majd? Mert engem kifejezetten érdekelne egy ilyen csapattag kiegészítő.
Köszönöm a válaszod! -
Am nem tartóm kizártnak, hogy nyilvános lesz-e mert már gondolkodtam rajta. Viszont én se értek igazán php-hoz így elég hiányos lesz a plugin. Eddig amiket csináltam épen, hogy működtek meg mások nem igazán igazodtak ki rajta.
-
Egy újabb kérdés checkboxnál meglehet oldani admin oldalon, hogy ne egy oszlopba rakja hanem kb 5 oszlopba?
-
Szerintem igen!
Beteszed a checkbox div-ét egy másikba, aminek adsz egy row class-t, majd a chacbox class-hoz hozzáadod col-md-2.
Ekkor a bootstrap 5 sort alakít ki. Valahogy így nézzen ki:
<div class="row"> <div class="checbox col-md-2"> <label> <input type="checbox"> Ide jön a szöveg </label> </div> <div class="checbox col-md-2"> <label> <input type="checbox"> Ide jön a másik szöveg </label> </div> </div>
Most csak két gombot raktam, de nyilván ötöt kell tenni. Ezt lehet variálni is! Van egy kis súgó itt:
http://getbootstrap.com/
-
Bocsi a késői reakcióra elégé sok munkám volt mostanában.
Köszi az infót ezt hogyan tudom alkalmazni.
Az alap template használom.
Megnéztem F12-vel és az alapban egy div-ben van az egész, még saját elrendezéssel nem próbálkoztam az új verzióba.<div class="checkboxes" style="display:inline-block" data-original-title="" title="">
<label class="checkbox" data-original-title="" title=""><input type="checkbox" name="sod[]" value="1" id="sod-1" data-original-title="" title="">szöveg 1</label>
<label class="checkbox" data-original-title="" title=""><input type="checkbox" name="sod[]" value="2" id="sod-2" data-original-title="" title="">szöveg 2</label>
</div> -
megtaláltam az erre vonatkozó form hendler-t:
function checkboxes($name, $option_array, $checked, $options=array()) { $name = (strpos($name, '[') === false) ? $name.'[]' : $name; if(!is_array($checked)) $checked = explode(",",$checked); $text = ""; $cname = $name; foreach($option_array as $k=>$label) { if(!empty($options['useKeyValues'])) // ie. auto-generated { $key = $k; $c = in_array($k, $checked) ? true : false; } elseif(!empty($options['useLabelValues'])) { $key = $label; //print_a($label); $c = in_array($label, e107::getParser()->toDB($checked)) ? true : false; } else { $key = 1; $cname = str_replace('[]','['.$k.']',$name); $c = vartrue($checked[$k]); } $text .= $this->checkbox($cname, $key, $c, $label); } // return print_a($checked,true); if(!empty($text)) { return "<div class='checkboxes' style='display:inline-block'>".$text."</div>"; } return $text; }
Ezt kéne átalakítana hogy min 5 sorba rakja.
Am végülis ráér mert ez egy másik pluginhoz fog majd kelleni.
Amibe legtöbb választható 170db checbox lesz, ott már nem ártana 5 sorba szedni. -
Admin területen hiba üzenetek?
Hogyan kell létrehozni hibaüzeneteket pl: kötelező mező kitöltetlenül marat stb...
languages fájlba már létrehoztam hozzá az üzeneteket.