Jump to content
php.lv forumi

Pieduriens

Reģistrētie lietotāji
  • Posts

    128
  • Joined

  • Last visited

Everything posted by Pieduriens

  1. Skaidrs. text ir vienkārši kā strings, bet man vajag array ko pēc tam padod PHP json_decode. Vai Tavai funkcijai: function conv(data) ir iespēja pielikt klāt position? Piemēram: [ {"id":1,"pid":0,"position":100}, // Pirmais roots {"id":4,"pid":1,"position":100}, // Pirmais sub roots {"id":5,"pid":1,"position":101}, // Otrais sub roots {"id":2,"pid":0,"position":101}, // Otrais roots {"id":3,"pid":0,"position":102}, // Treshais roots ] Tiku galā: function conv(data){ var result=[]; function dfs(node, parent) { for(var i in node){ result.push({id:node[i].id,pid:parent,position:position}); position++; if (node[i]['children']) dfs(node[i]['children'],node[i]['id']); } } var position=100; dfs(data, 0); return result; }
  2. Super ! Vienkārši super..Client Side Must Have! Tik kad lieku lai nolasītu saturu no textarea. Ar statiski definētu var protams viss ir ideāli :) var data= $("textarea#nestable_list_1_output").val(); tieku outputā pie: [{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0},{"pid":0}]
  3. Paldies Jurchik par piemēru. Gandrīz vai perfekto. Tikai $menu ir jāatgriež nevis jāizvada.
  4. Paldies F3llony par padomu. Taču vēlos attīstīt šo: Uzrakstīju kā tam itkā loģiski vajadzētu izskatīties, bet šis nav ejošs: $string = '[{"id":1,"children":[{"id":4}]},{"id":2}]'; $data = json_decode($string, true); $menu = array(); function build_menu($data, $i = 0){ foreach ($data as $items){ $i++; if(array_key_exists("children",$data)){ foreach ($items as $item){ array_push($menu, $item['id']); build_menu($menu, $i); } } else{ array_push($menu, $items['id']); } } return $menu; } $menu = build_menu($data); var_dump($menu);
  5. ja var but vairaki, tacu planoju tos vairakus child itemus kartot ar position vertibu.
  6. Atvainojos, aizmirsu šo atrunāt. Skatīt 1. posta UPDATE.
  7. Labdien. Saskāros ar problēmu, kuru nespēju ļoģiski atrisināt. Tātad esmu izveidojis ar Jūsu palīdzību Nestable list menu (http://php.lv/f/topic/21576-sub-array-menu/). Tālāk scenārijs paredz, pēc tabulas sakārtošanas ar jquery nestable, serialize izvadi: [{"id":1,"children":[{"id":4}]},{"id":2}] Pēc json_decode iegūstu array: Array ( [0] => Array ( [id] => 1 [children] => Array ( [0] => Array ( [id] => 4 ) ) ) [1] => Array ( [id] => 2 ) ) Kā sakārtot array tā lai iegūtu ko līdzīgu: $menu = array( array( 'name' => 'Item 1', 'id' => '1' ,'children' => '0'), array( 'name' => 'Item 4', 'id' => '4' ,'children' => '1'), array( 'name' => 'Item 3', 'id' => '3' ,'children' => '0'), ); Kā arī turpmākais loģiskais risinājums. Tabula satur rindās visu menu izskatu( kārtību utt). Liekas ka izmantojot nestable list, pirms menu updeita, man būtu jāiztīra visa db tabula lai updeitotu to? Paldies. UPDATE Tur, kur 'children' => '0' , tā ir root kategorija ( Item1, Item 3 ir root kategorijas ) Tur, kur 'children' => 'nav 0' children ir augstākas kategorijas id. ( Item2 ir sub zem Item 1)
  8. Ok tiktāl taka būtu. Taču kādēļ klāt nācis $levelam: *4, un *4+2 ? Reāli jūtos mazliet apjucis.. Vēlos šo izmantot, lai varu ubūvēt nestable list, bet izskatās ka tur style strutūra ir savādāka: <li data-id="1" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 1</div> <ol class="dd-list"><li data-id="11" class="dd-item"> <div class="dd-handle">Item 11</div> </li></ol></li> <li data-id="2" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 2</div> <ol class="dd-list"> <li data-id="3" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 3</div> <ol class="dd-list"><li data-id="9" class="dd-item"> <div class="dd-handle">Item 9</div> </li></ol></li> </ol> </li> <li data-id="5" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 5</div> <ol class="dd-list"> <li data-id="6" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 6</div> <ol class="dd-list"><li data-id="7" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 7</div> <ol class="dd-list"><li data-id="8" class="dd-item"><button type="button" data-action="collapse">Collapse</button><button type="button" data-action="expand" style="display: none;">Expand</button> <div class="dd-handle">Item 8</div> <ol class="dd-list"><li data-id="10" class="dd-item"> <div class="dd-handle">Item 10</div> </li></ol></li></ol></li></ol></li> </ol> </li>
  9. Ok, kā atsevišķa klase ārpus CI sistēmas viss Codez koks strādā. Taču pievienojot Codez Menu klasi CI sistēmas library, ar echo rezultāti izvadās pirm html taga, ( ar return nestrādā Cik saprotu ir jāizveido $outputs ar un tad jāatgriež, taču tādā gadijumā tieku tikai pie: <ol class="dd-list"> PHPHTML </ol> Library Menu Clase: Class Menu{ public $item=array(); public $root=array(); public function set($data){ foreach($data as $item){ $this->items[$item['id']]=$item; $this->items[$item['id']]['childs']=array(); } foreach($data as $item){ if($item['pid']==0){ array_push($this->root,$item['id']); } else { array_push($this->items[$item['pid']]['childs'],$item['id']); } } } function show($ids,$level=0){ $output = ''; foreach($ids as $id){ $output .= str_repeat('<ol class="dd-list"><li class="dd-item"><div class="dd-handle">',$level).$this->items[$id]['name'].str_repeat('</div></li></ol>',$level); $this->show($this->items[$id]['childs'],$level+1); } return $output; } } Controlieris: public function index(){ $this->load->library('menu'); // <-- Codez Klase $a = $this->navigation_model->render_menu_array(); $b = $this->menu->set($a); $this->data['menu'] = $this->menu->show($this->menu->root); $this->render_page('admin/navigation'); } Ko daru nepareizi? Paldies.
  10. Paldies Codez. Izskatās diezgan cerīgi, tik tieku pie A PHP Error was encountered Severity: Notice Message: Use of undefined constant pid - assumed 'pid'
  11. To: 101111 Paldies par ieteikumu. Taču neteikšu ka saprotu kā tālāk šo izmantot. Īpaši mulsina rinda: $addChildrens = function($item) use ($allItems, & $addChildrens) {
  12. Hmm, Gadījumā PC laiks ir uzstādīts korekti? HTTPS ar novecojušu datumu/laiku laikam nestrādā..
  13. Labvakar. Cīnos ar funkciju, kas veido Nestable List no array. Pašlaik ir izveidots arrays no kura mēģinu būvēt menu, bet loģiskajā shēmā tieku tikai līdz 2lvl menu items. Cenšos rakt tālāk, bet zem 2lvl sub netieku. Kur un kā likt nākamos blokus? DB: name |id|url| position | parent_id --------------------------------------------------------------------- PHP 1 url 100 0 CodeIgniter 4 url 100 1 HTML 10 url 100 0 CSS 11 url 100 10 Inline 12 url 100 11 Python 2 url 101 12 PHP: public function create_menu() { $this->db->order_by('position', 'asc'); $query = $this->db->get('navigation'); $output = ''; $i = 0; foreach ($query->result_array() as $menuss){ $i++; $menu[$i]['id'] = $menuss['id']; $menu[$i]['key'] = $menuss['parent_id']; $menu[$i]['name'] = $menuss['name']; $menu[$i]['url'] = $menuss['url']; $menu[$i]['position'] = $menuss['position']; } foreach ($menu as $item) { $output .= '<li data-id="'.$item['id'].'" class="dd-item">'; if ($item['key'] == 0) // root category { $output .= '<div class="dd-handle">'.$item['name'].'</div>'; } else{ ############SUB############### $output .= '<ol class="dd-list"><li data-id="'.$item['id'].'" class="dd-item">'; $output .= '<div class="dd-handle">'.$item['name'].'</div>'; $output .= '</li></ol>'; ############SUB############### } $output .= '</li>'; } return $output; } Paldies par ieteikumiem ;) Pieduriens.
  14. Paldies visiem, idejas iegūtas, bet flame ware jau nav nepieciešams :)
  15. Ok, vajadzēja būt nedaudz konkrētākam.. Ir Masīvs: http://pastebin.com/weCm73Av Trīs iespējamās varbūtības. 1): [default_billing] => 4 [default_shipping] => 5 2): [default_billing] => [default_shipping] => 3) [default_billing] => 6 [default_shipping] => 6 Scenārijs, bēc id iegūšanas mans arrays tiek papildīnāts ar $array[$i]['shipping'] kā arī ja id atskjiras ar $array[$i]['billing']
  16. Hmm paldies par Ideju, bet intuitīvi jūtu, ka tas būtu jāveic vienā blokā..
  17. Labvakar! Vai nu ir pārāk vēls, acis izkaltušas un galva pārkarsusi, bet nekādi nevaru salikt konstrukciju.. // Ja id divos laukos nav norādīts, tad apakš foreach nav jāpilda.. // Ja id divos laukos ir vienāds, tad jāpilda viena sekcija // Ja id divos laukos ir dažāds, tad jāpilda otra sekcija. Šie trīs punkti būtu viegli izpildāmi izmantojot parastu elseif, bet klāt nāk: // Ja vienā no diviem laukiem ir id, izmantot to id kurš ir aizpildīts. Paldies ;)
  18. Hei, nē, pats izdomāju, lai gan tas ir tik universāli, ka domājams te nav ko zagt..divriteni no jauna neizgudrosi, bet ikdienā viena no top funkcijām..
  19. Mūžu senā bet noderīgā funkcija array apskatei normālā skatā ar <pre> tagiem. function printr($var){ echo "<pre>"; print_r($var); echo "</pre>"; } Kā arī kautkas prieciņam :) function skaitamAitas($aitas){ $i = 1; while ( $i <=$aitas ) { echo $i++ .'. aita<br>'; } }
  20. Jā, bet kas ir Execute()? kopā 272 reizes...
  21. Vēlreiz paldies, tāda sīka lietiņa, bet tik daudz izručī ;)
  22. Ok, paldies Waplet.. Strādā.. Tikai aizstāju FROM &table WHERE ar $table. Bet jautājums: ko izdara tas procentiņs: '$slug%' ?
  23. Sveiki.. Mācību ietvaros cīnos ar vienu loģisko algoritmu.. http://pastebin.com/D3N38Gas Vēlos iestāstīt, ka pie nosacījuma, ja šāda vērtība eksistē piekabina klāt stringam +1... Analoģiski kā WP, kur, ja slugs eskistē, tad WP pats pielik klāt unikālu galotni... Pašlaik strādā līdz trešajai reizei.. 1) adrese 2) adrese-2 3) šo jau rāda tā pat: adrese-2, (vajadzētu adrese-3 utt...) Ceru, ka problēmu var saprast... Paldies...
  24. Visi kaut ko cep :) Arī vēlos padalīties..uzrakstīju aiz gara laika :) $url = 'http://www.bank.lv/vk/xml.xml'; $xml = file_get_contents($url); $xml = simplexml_load_string($xml); $simbol = $xml->Currencies->Currency[10]->ID; $rate = $xml->Currencies->Currency[10]->Rate; echo $simbol.': '.$rate; (Currency "10'" ir priekš EUR)
  25. Jā, ir otrais. Izmantoju Magneto 1.7.0.2 CE. Visi faili kur, kur sastopama šī "figņa" Visvairāk interesē, kā šis viss tur ir uzradies? 1. Laikā, kad bija izmantota old versija. 2. uz httpdocs (root dir) stāv jail break permisijas. 3. Negribas ticēt, ka *Vladimirs Popovs* pats iemānijis šo "haku" jau modulī, pie moduļa instalācijas.. Baigās pārdomas :D
×
×
  • Create New...