Piotr Krajewski

web application programmer

Wypowiedzi

  • Piotr Krajewski
    Wpis na grupie Jedźmy razem samochodem w temacie Często jeżdżę trasą...

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Jedźmy razem samochodem

  • Piotr Krajewski
    Wpis na grupie PHP w temacie Problem ze sprawdzeniem checkbox
    17.08.2011, 15:58

    zrob tak:

    <input type="hidden" name="nazwa" value="0">
    <input type="checkbox" name="nazwa" value="1">

    i teraz zaznaczenie spowoduje wyslanie pola checkbox z wartoscia 1 zas niezaznaczenie jego bedzie 0

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie przekazywanie danych do placeholder'a
    8.08.2011, 10:45

    nie chce mi sie tlumaczyc calej struktury jakiej uzywam ale wolal bym placeholdera uzyc.

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie przekazywanie danych do placeholder'a
    8.08.2011, 10:03

    Witam serdecznie,

    w projekcie mam uzyty placeholder - powiedzmy że identycznie jak na http://framework.zend.com/manual/en/learning.view.plac...

    czyli sidebar w odzielnym pliku wywolywany w preDispatch w kontrolerze jakims.
    Mój problem polega na wstrzyknieciu dodatkowych danych do tego placeholdera po przez kontroller lub templatke np.

    $this->placeholder('sidebar')->nowe_pole = 'test';

    i uzycie w placeholderze czegos takiego spowodowalo by wypisanie tekstu "test" w odpowiednim miejscu.
    Nie mniej jednak powyzszy zapis robi zwykły append (dodaje na koniec moj tekst) a ja potrzebuje wywolac w odpowiednim miejscu. Ma ktoś pomysl jak tego dokonac ?

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie zend_view_helper_url i https / http
    30.06.2011, 22:22

    oki problem rozwiązany - w routingu trzeba było zdeklarować parametr scheme.

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie zend_view_helper_url i https / http
    30.06.2011, 21:11

    Witam serdecznie,

    mam takie pytanie - czy jest możliwość zdefiniowania w helperze url z jakim prefixem ma budować urla ? Pytam się gdyż obecnie będąc na stronie np.

    https://secure.strona.pl/
    i link budowany tak: <?php echo $this->url(array(), 'www-about', true); ?>
    wyświetla sie w ten sposób: https://www.strona.pl/o-nas.html a chciałbym by zamiast https było http.

    Macie jakiś pomysł?

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie zend_form i Zend_Form_Element_Hash
    22.06.2011, 22:03

    Lekko odkopie temat, gdyż może się komuś przydać.
    Jeśli w kodzie HTML, znajdzie się taki kod:

    <img src="" alt="cos" />

    to Zend_Validate_Identical będzie pokazywał wspomniany błąd.

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    22.05.2011, 22:31

    okej, jakieś pierwsze kroki uczyniłem w kierunku zrealizowania mojego pomysłu i wygląda mniej więcej to tak:

    Nowy view helper:


    class Zend_View_Helper_Translator extends Zend_View_Helper_Translate{
    protected static $_translateIds = array();
    public function translator($translateId){
    array_push(self::$_translateIds, $translateId);
    return $this->translate($translateId);
    }

    public static function getTranslateIds(){
    return self::$_translateIds;
    }
    }


    Plugin:

    class Core_Controller_Plugin_Translate extends Zend_Controller_Plugin_Abstract{
    private $_translate = null;

    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
    $options = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getApplication()->getOptions();
    $options = $options['resources'];
    $locale = new Zend_Locale(isset($_COOKIE['lang']) ? $_COOKIE['lang'] : $options['locale']['default']);
    $this->_translate = new Zend_Translate(array('adapter' => 'array', 'locale' => $locale));

    if ($this->_translate->isAvailable($locale)){
    $this->_translate->setLocale($locale);
    }

    Zend_Registry::set('Zend_Translate', $this->_translate);
    Zend_Registry::set('Zend_Locale', $locale);
    Zend_Registry::set('Zend_Currency', new Zend_Currency($locale));
    }


    public function dispatchLoopShutdown(){
    $translationIds = Zend_View_Helper_Translator::getTranslateIds();
    if (!empty($translationIds)){
    $translate = new Model_Translation();
    $translations = $translate->findAllByNames($translationIds);
    $this->_translate->addTranslation($translations, 'pl_PL');
    Zend_Registry::set('Zend_Translate', $this->_translate);
    }
    }
    }


    Widok:

    <?php echo $this->translator('tmp1'); ?>
    <?php echo $this->translator('tmp2'); ?>
    <?php echo $this->translator('tmp3'); ?>


    I teraz tak, z widoku wyciągam wszystkie klucze - to jest okej, następnie w bazie odnajduje tłumaczenia i daje do Zend_Translate. Natomiast nie wiem jak zwrócić spowrotem do widoku prztłumaczony tekst.

    Masz może na to pomysł ?

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    21.05.2011, 13:44


    Zend_Form posiada metodę setTranslator, do której możesz przekazać własny adapter.


    oo tego nie wiedziałem :) no to jest jakiś punkt zaczepienia. W razie czego będę pisał :)

    Pozdrawiam

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    21.05.2011, 08:31

    Rozumiem że chodzi o to aby wyciągnąć już nie helper translate ale mój własny - problem pojawia się wtedy przy formularzach - domyślnie wszystkie formularze działaja z zend translate() więc wolałbym nie tworzyć nowego helpera. Jakiś pomysł na to ? Piotr Krajewski edytował(a) ten post dnia 21.05.11 o godzinie 08:41

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    19.05.2011, 14:20

    rozwiazanie ciekawe, nie menij jednak pozostaje problem pobrania wszystkich translacji kluczy z danego widoku. Jeśli będę to potrafił to prawdopodobnie skorzystam z twojego rozwiazania.

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    18.05.2011, 17:01

    może być do array'a lub obiektu - bez różnicy - cały zabieg miałby działać na zasadzie:
    1. wchodzę na stronę /controller/action gdzie w widoku użyty jest wielokrotnie view helper translate np.
    $this->translate('translate_title');
    $this->translate('translate_content');
    itp.

    2. jakiś pluginik - rozszerzenie view helpera translate znajduje mi wszystkie tlumaczenia na danej stronie
    3. przeszukuje baze pod katem tych kluczy - w tym wypadku: translate_title i translate_content
    4. znalezione translacje podmienia na tlumaczenia.

    Tak to by z grubsza mialo dzialać.

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Translate i Baza Danych
    12.05.2011, 20:08

    Witam serdecznie,

    od paru dni zmagam się z pewnym problemem związanym z Zend_Translate, Bazą Danych i Zend_View. Mianowicie - chciałbym stworzyć tłumaczenia oparte o Zend_Translate i bazę danych (tu nie ma nic trudnego), problem mój polega na tym iż chciałbym przed wyrenderowaniem widoku pobrać z niego wszystkie klucze, które są osadzone w helperze $this->translate(), na ich podstawie wyciągnąć tłumaczenia i dopiero wyrenderować widok z już przetłumaczonymi tekstami.

    Moje pytanko brzmi: czy jest coś takiego osiągalne w Zend_View?
    Dodam iż w smartym zrealizowanie tego jest możliwe, nie wiem natomiast jak ugryźć Zend_View.

    Ma ktoś pomysły?
    Pozdrawiam

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie ActionStack i wiele formularzy na jednej stronie
    19.04.2011, 12:22

    Dziękuje wszystkim za pomoc oraz dyskusję dużo mi pomógl ten wątek.
    Pozdrawiam

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie ActionStack i wiele formularzy na jednej stronie
    17.04.2011, 21:08

    ooo to mi całkowicie rozwiąże problem :)
    Dzięki za pomysł.

    PS. a co jeśli formularze nie mogą być w subformach (nie mój przypadek ale być moze się spotkam z czymś takim) np. gdy jest form dodawania do newslettera, logowania i jakiś jeszcze formularz. I prawdopodobnie będą musiały być wywoływane przez jedną akcje i tam tez walidowane. Masz na to jakiś pomysł ? Piotr Krajewski edytował(a) ten post dnia 17.04.11 o godzinie 21:11

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie ActionStack i wiele formularzy na jednej stronie
    17.04.2011, 18:30

    Cześć wszystkim,

    tworząc sobie formularze do strony natknąłem się na duży problem którego nie potrafię rozwiązać w sposób "poprawny". Otóż chciałbym zamieścić na jednej stronie np. /account/settings (kontroler/akcja) dwa formularze:
    - do zmiany danych użytkownika
    - do zmiany hasła

    Problem w tym, że jeśli zamieszczam je w sposób standardowy tzn:


    public function settingsAction(){
    $form = new Form_Account();
    $form->setAction($this->view->url());
    $form->populate($this->user);

    if ($this->_request->isPost()){
    if ($form->isValid($this->_request->getPost())){
    $data = $form->getValues();
    ...
    ...
    }
    }
    $this->view->settingsForm = $form;

    $form = new Form_Password();
    $form->setAction($this->view->url());

    if ($this->_request->isPost()){
    if ($form->isValid($this->_request->getPost())){
    $data = $form->getValues();
    ...
    ...
    }
    }
    $this->view->passwordForm = $form;
    }


    to wysyłając jeden formularz walidują mi się obydwa i błędy wyświetlają się w obydwu.

    Moje pytanie jest następujące - jak można problem rozwiązać?
    Dodam że probowałem rozdzielić akcje by settingsy były w jednej a zmiana hasła w drugiej akcji i używałem ActionStacka lecz po wysłaniu formularza przenosiło mnie na stronę danej akcji np. account/change-password czego bym nie chcial.

    Jakieś propozycje?

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie unit testy + zend route
    19.03.2011, 10:35

    Witam wszystkich,

    ostatnio chciałem napisać kilka testów dla swojej aplikacji zendowskiej i od razu natrafiłem na kilka problemów, a mianowicie:

    Dostaje tego typu błędy:


    StaticsControllerTest::testContactAction
    Failed asserting last controller used <"error"> was "Statics"

    /var/www/html/morendo/library/Zend/Test/PHPUnit/ControllerTestCase.php:1000
    /var/www/html/morendo/tests/application/controllers/StaticsControllerTest.php:10


    mimo że w moim przekonaniu mam wszystko dobrze tzn:



    class StaticsControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
    {
    public function setUp()
    {
    $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
    parent::setUp();
    }

    public function testContactAction()
    {
    $this->dispatch($this->url(array(), 'www-contact', true));

    $this->assertController('Statics');
    $this->assertAction('contact');
    $this->assertQueryCount('form#contact', 1);
    }
    }


    i routing:

    routes.www.type = "Zend_Controller_Router_Route_Hostname"
    routes.www.route = MAIN_URL
    routes.www.chains.contact.type = "Zend_Controller_Router_Route_Static"
    routes.www.chains.contact.route = "/kontakt.html"
    routes.www.chains.contact.defaults.controller = "Statics"
    routes.www.chains.contact.defaults.action = "contact"


    i podejrzewam, że tu jest problem - routing jest niestandardowy.
    Ma ktoś podobny problem i rozwiązanie?

  • Piotr Krajewski
    Wpis na grupie Jedźmy razem samochodem w temacie [kierowca] Gdynia -> Olsztyn 18.03.2010

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Jedźmy razem samochodem

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Form setIgnore(true) nie działa
    15.03.2011, 09:29

    Ha! faktycznie getValues() miałem w innych formularzach tu dałem getPost - chyba ze zmęczenia :) Dzieki za pomoc!

    Pozdrawiam

  • Piotr Krajewski
    Wpis na grupie Zend Framework w temacie Zend_Form setIgnore(true) nie działa
    15.03.2011, 08:32

    no własnie nie do końca tak chce bo np. niektóre pola są wymagane ale musza być ignorowane np. csrf token. on musi być ale w parametrach ma dalej nie iść

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do