Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Sebaa

Użytkownik
  • Postów

    45
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Sebaa

  1. Napisałem ręcznie swoją paginację. Można zamknąć.
  2. Udało mi się ogarnąć hooka innym sposobem. Można zamknąć.
  3. Nie mogę złapać tego konkretnego inputa. Albo podmienia mi nazwę albo tworzy nowy.
  4. Próbuję na różne sposoby niestety nie daje to efektu. Jest jakiś inny sposób na tworzenie pluginów niż ten który opisuję wyżej?
  5. A to jak mam odpalony tryb deva, wybieram z menu plugins, tworzę nowy i klikam create hook to nie robię pluginu?
  6. Nie wiem co masz na myśli. Napisałeś że u Ciebie działa to napisałem tak samo jak Ty. Wklejam cały kod: //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook73 extends _HOOK_CLASS_ { /** * Get elements for add/edit form * * @param \IPS\Content\Item|NULL $item The current item if editing or NULL if creating * @param \IPS\Node\Model|NULL $container Container (e.g. forum), if appropriate * @return array */ public static function formElements( $item=NULL, \IPS\Node\Model $container=NULL ) { $options = array(); $toggles = array(); if ( \count( $options ) or \count( $toggles ) ) { $formElements['create_record_state'] = new \IPS\Helpers\Form\CheckboxSet( 'create_record_state', $values, FALSE, array( 'options' => $options, 'toggles' => $toggles, 'multiple' => TRUE ) ); } $formElements['field_124']->value = isset( \IPS\Request::i()->pole ) ? \IPS\Request::i()->pole : NULL; return $formElements; } }
  7. public static function formElements( $item=NULL, \IPS\Node\Model $container=NULL ) { $options = array(); $toggles = array(); $values = array(); if ( \count( $options ) or \count( $toggles ) ) A tak, zdefiniowałem zmienne. Niestety dalej wywala błąd: Jakieś wartości powinienem tam wpisać?
  8. //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook72 extends _HOOK_CLASS_ { /** * Get elements for add/edit form * * @param \IPS\Content\Item|NULL $item The current item if editing or NULL if creating * @param \IPS\Node\Model|NULL $container Container (e.g. forum), if appropriate * @return array */ public static function formElements( $item=NULL, \IPS\Node\Model $container=NULL ) { if ( \count( $options ) or \count( $toggles ) ) { $formElements['create_record_state'] = new \IPS\Helpers\Form\CheckboxSet( 'create_record_state', $values, FALSE, array( 'options' => $options, 'toggles' => $toggles, 'multiple' => TRUE ) ); } $formElements['field_124']->value = isset( \IPS\Request::i()->pole ) ? \IPS\Request::i()->pole : NULL; return $formElements; } } Niestety nie działa mi to, przy kliknięciu w link formularza wywala błąd: Przy tworzeniu hooka rozszerzam klasę: \IPS\cms\Records. U mnie te pola input są dziwne, podzielona na parę innych. Część z nich ukryta. Niżej screen jak to wygląda, do tych dwóch inputów potrzebuję wstawić dwie różne wartości.
  9. Docelowo do tego formularza miałby być odnośnik w różnych miejscach na forum z różną wartością w GET (zależną od miejsca w którym klikniemy w link) i chcę zrobić warunek jeżeli jest jakaś wartość GET to wpada ona do value tych dwóch inputów (dwie różne wartości). https://www.audiostereo.pl/opinie_sprzet.html/?do=form&d=10 Zrobiłem konto na szybko: TestPi qwe123
  10. <input type="hidden" name="content_field_359_values" value=""> <input type="text" name="content_field_359" value="" id="elInput_content_field_359" data-ipsContentItem data-ipsContentItem-maxItems="1" data-ipsContentItem-dataSource="https://www.audiostereo.pl/nowa_opinia_cd.html/?do=form&amp;d=26&amp;_itemSelectName=content_field_359" data-ipsContentItem-minAjaxLength="3" > Do tych dwóch potrzebuję wstawić wartość z GET. Są one ze sobą powiązane, w tym niżej wybiera się coś z podpowiedzi i dopiero ta wartość trafia do pola hidden. Nie przejdzie dalej jak nie wybierze się nic z listy. Chciałbym jakoś złapać te dwa inputy i wpisać do ich value wartość z GETa.
  11. A może przyda się na przyszłość Wartość z geta ma być zależna z którego miejsca na stronie klikniemy w link. Jest to dodawanie opinii. Przy przeglądaniu danego modelu i po kliknięciu w link formularza dodania opinii chciałbym żeby automatycznie wpisywało dany model (czyli wartość którą umieszczę sobie w linku w GET) do inputa "nazwa". Z tego co patrzyłem nie da się tego zrobić poziomu edycji bazy, ani przy edycji szablonu formularza. Doczytałem, że jedyne wyjście to hook.
  12. Mam formularz, który zawiera parę inputów. Chcę do jednego z nich umieścić wartość podaną z get, żeby był od razu wypełniony po kliknięciu w link kierujący do formularza. Jeden input ma być od razu wypełniony danymi z geta. Innymi słowy, chcę żeby po kliknięciu w link kierujący do formularza, jedno pole było już wypełnione automatycznie tym co sobie podam w GET w linku. Chcę tylko do danego inputa podać value = wartość z GET.
  13. Mam formularz, który stworzył się automatycznie po dodaniu bazy na stronę. Chciałbym żeby automatyczne wypełniał jednego inputa gdy w get jest jakaś wartość, musi ona trafić do value inputa. Nie wiem jak złapać tego konkretnego inputa i wstawić do niego wartość z GET. Dodam, że input jest type="hidden". Przy tworzeniu pluginu rozszerzam klasę \IPS\cms\Records, próbowałem w sposób jak niżej. Docelowo zamiast '123' miałaby być wartość z GET. //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook66 extends _HOOK_CLASS_ { /** * Get elements for add/edit form * * @param \IPS\Content\Item|NULL $item The current item if editing or NULL if creating * @param \IPS\Node\Model|NULL $container Container (e.g. forum), if appropriate * @return array */ public static function formElements( $item = 'content_field_124', \IPS\Node\Model $container = null ) { if(static::$customDatabaseId == 111) { $form = new \IPS\Helpers\Form; $form->hiddenValues[ 'content_field_124' ] = '123'; } } }
  14. Cześć, próbuję wstawić wartość z geta do inputa jako value w formularzu który dodaje rekordy do bazy czyli jeżeli jest wartość get to dopisuje ją do danego inputa jako value. Wyczytałem, że jedyny sposób żeby tego dokonać to zrobienie hooka, a niestety nie robiłem tego nigdy wcześniej. Odpaliłem dev mod, stworzyłem hooka i nie wiem co dalej. Jaką klasę powinienem rozszerzyć przy tworzeniu hooka? Jakiej metody użyć? Jak mogę się odwołać do tego konkretnego formularza lub inputa? A może jest łatwiejszy sposób niż zrobienie hooka? A to mój input do którego chcę wcisnąć value z GETa: <input type="hidden" name="content_field_124_values" value="">
  15. Jak robię nowy blok z wczytaniem danych z bazy to cały ten kod powinien się w nim znaleźć? Nad tabelą tablePagination, a gdzie ten kod /* Create the table */ ??
  16. Tabeli, nie tabel. W foreach robią się li, a całość ma postać tabeli. Jest jakaś różnica jak ją tworzę? Podpowiesz coś konkretniej z tą paginacją czy tak tylko będziemy sobie pisali? Są jakieś wymagania w kodzie żeby tworzyła się paginacja? Przy kanale bazy też się sama nie tworzy.
  17. NIe wiem czego kod chcesz zobaczyć. Jedno to kanał bazy danych, więc kodu tam nie ma, a drugie to po prostu wyciąganie z bazy danych i tworzenie tabeli:
  18. No dobra w tym przypadku to zrozumiałe że dodaję warunek a on i tak patrzy na całą bazę. Ale co z blokiem, który jest stworzony jako kanał bazy? Tam nie integruję w kod, więc tworzy się wszystko automatycznie a paginacji dalej nie ma. Limit mam ustawiony na 25. Tak samo jak sam napiszę blok, który wczytuje dane z bazy, tworzy tabelę i wypluwa więcej wpisów niż 25 a paginacji nie widać. Może do tabeli trzeba dodać jakiś kod żeby wyłapał że ma tam zrobić paginację?
  19. Ja w skinach nic nie zmieniam jeżeli chodzi o ten problem. Opiszę jeszcze raz o co mi chodzi. Trzy różne przypadki: Przypadek pierwszy: w szablonie recordRow zrobiłem warunek, że jeżeli pobiera dane z "baza x" to wyświetlaj tylko posty nie oznaczone jako archiwalne - paginacja pokazuje i tak całość więc mam sporo pustych stron. W innym przypadku robię blok jako wtyczka z kanałem "bazy y" i ustawiam limit 99 - wyświetla co trzeba ale brak paginacji. I ostatni przypadek to własny blok którego kod wkleiłem wyżej. Pobieranie i wyświetlanie danych z "baza z". Tu również brakuje paginacji. Myślałem, że może np w przypadku trzecim wystarczy dodać trochę kodu który wygeneruje mi paginację na podstawie danych które pobieram z bazy. Z tego co zrozumiałem ze wcześniejszych odpowiedzi to paginacja powinna generować się sama jeżeli przekroczony zostanie limit 25, a w moich przypadkach nic takiego się nie robi. Rozumiem, że nie da się tego tak zrobić i jedyne rozwiązanie to napisać mod? Mógłbyś podpowiedzieć co miałby robić taki moduł?
  20. Przy tworzeniu bloku z kanałem bazy nie ma możliwości integrowania w kod, a w tym przypadku paginacja także się nie wyświetla. Wklejam kod bloku który wyświetla mi tabelę pobraną z bazy: {{if (\IPS\Request::i()->url()->data['path'] == "/ogloszenia_sprzet.html/") }} {{$rows = \IPS\Db::i()->select('*', 'cms_database', array('field_157=?', 1 ));}} <div class="ipsPageHeader ipsClearfix ipsSpacer_bottom" style="margin-top: 30px;"> <h1 class="ipsType_pageTitle">Ogłoszenia promowane - sprzęt</h1> </div> <div class='ipsBox' id="sponsoredBox" data-baseurl='https://www.audiostereo.pl/ogloszenia_sprzet.html/?page=1&amp;d=30' data-resort='listResort' data-controller='core.global.core.table,core.front.core.moderation'> <div class="ipsButtonBar ipsPad_half ipsClearfix ipsClear" style="height: 40px;"></div> <ol class='ipsDataList ipsDataList_zebra ipsClear cCmsListing' id='elTable_test' data-role="tableRows"> {{foreach $rows as $row}} {{if $row['field_158'] == 0 }} <li class="cCmsRecord_row ipsDataItem ipsDataItem_responsivePhoto" data-rowID="{$row['primary_id_field']}"> <div class='ipsDataItem_icon ipsPos_top'> </div> <div class='ipsDataItem_main'> <h4 class='ipsDataItem_title ipsContained_container'> <span class='ipsContained ipsType_break'> <a href="https://www.audiostereo.pl/ogloszenia_sprzet.html/{$row['record_dynamic_furl']}-r{$row['primary_id_field']}">{$row['field_146']}</a> </span> </h4> <span class="only-first one-line"> </span> <div class='ipsDataItem_meta ipsType_blendLinks'> </div> </div> <ul class='ipsDataItem_stats'> <li> <span class="ipsDataItem_stats_number">{$row['record_comments']}</span> <span class="ipsDataItem_stats_type"> komentarz</span> </li> <li> <span class="ipsDataItem_stats_number">{$row['record_views']}</span> <span class="ipsDataItem_stats_type"> wyświetleń</span> </li> </ul> <div class="ipsDataItem_price"> {$row['field_149']} </div> <div class="ipsDataItem_type"> {{if ($row['field_142'] == 1)}} Kupię {{elseif ($row['field_142'] == 2)}} Zamienię {{elseif ($row['field_142'] == 3)}} Sprzedam {{endif}} </div> <div class="ipsDataItem_city"> {$row['field_152']} </div> <div class='ipsDataItem_modCheck'> </div> </li> {{endif}} {{endforeach}} </ol> <div class="ipsButtonBar ipsPad_half ipsClearfix ipsClear" style="height: 40px;"></div> </div> {{endif}}
  21. Mam ustawiony taki limit w Table.php i niestety nic to nie daje. Robię nowy blok typu wtyczka, wybieram kanał danej bazy i ustawiam limit do wyświetlenia na 99. Inny sposób którym robię to blok z kodem html, który łączy się z bazą i wyciąga dane (\IPS\Db::i()->select('*', 'nazwa_bazy') i generuje sobie tabelę w foreach. W obu przypadkach ilość wyświetlanych danych jest znacznie większa niż ustawiony limit. Czy czegoś nie dodaję do kodu? Trzeba tam jakoś wcisnąć kod odpowiadający za wygenerowanie paginacji?
  22. A jak w bloku zrobię sobie pobieranie danych z bazy to mogę jakoś do tego dodać paginację? np jakoś zmienić poniższy kod żeby obsługiwał mi moje zapytanie z bazy i moje wyświetlanie tabeli? Jakkolwiek dodać paginację do własnej tabeli? {template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, $table->getPaginationKey()"}
  23. Dodałem na jedną ze stron bazę {database="xxx"} i paginacja wygenerowała się automatycznie. W szablonie recordRow stworzyłem warunek, że jak jest ta baza to ma pokazywać tylko dane które nie są oznaczone jako archiwum. Dlatego zmniejszyła mi się ilość stron do wyświetlenia ale paginacja dalej pokazuje całkowitą wartość. Pojawił mi się też drugi problem, próbowałem dodać dwie bazy na stronę. Po zapisaniu wyskoczył błąd ale niestety zmiany się zapisały i mam na stronie dwie tabele. Nie mogę tego cofnąć bo przy każdej próbie zapisania wyskakuje komunikat ale już nie zapamiętuje zmian. Można to jakoś zresetować, wyłączyć na chwilę bazy czy zostaje usunąć stronę i stworzyć od nowa?
  24. Albo może ktoś podpowie jak dodaje się paginację do listy? np zrobię w bloku tabelę z elementami wyciągniętymi z bazy i jak do niej podpiąć paginację?
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.