/** * Renders a view using the template engine * * @param string $path * @param array $params * @param boolean $mustClean */ PHP_METHOD(Phalcon_Mvc_View_Engine_Php, render) { zval *path, *params, *must_clean = NULL, *value = NULL, *key = NULL, *contents; zval *view; HashTable *ah0; HashPosition hp0; zval **hd; PHALCON_MM_GROW(); phalcon_fetch_params(1, 2, 1, &path, ¶ms, &must_clean); if (!must_clean) { PHALCON_INIT_VAR(must_clean); ZVAL_BOOL(must_clean, 0); } if (PHALCON_IS_TRUE(must_clean)) { phalcon_ob_clean(TSRMLS_C); } /** * Create the variables in local symbol table */ if (Z_TYPE_P(params) == IS_ARRAY) { phalcon_is_iterable(params, &ah0, &hp0, 0, 0); while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) { PHALCON_GET_HKEY(key, ah0, hp0); PHALCON_GET_HVALUE(value); if (phalcon_set_symbol(key, value TSRMLS_CC) == FAILURE) { return; } zend_hash_move_forward_ex(ah0, &hp0); } } /** * Require the file */ if (phalcon_require(path TSRMLS_CC) == FAILURE) { return; } if (PHALCON_IS_TRUE(must_clean)) { PHALCON_INIT_VAR(contents); phalcon_ob_get_contents(contents TSRMLS_CC); PHALCON_OBS_VAR(view); phalcon_read_property_this(&view, this_ptr, SL("_view"), PH_NOISY_CC); phalcon_call_method_p1_noret(view, "setcontent", contents); } PHALCON_MM_RESTORE(); }
/** * Renders a view using the template engine * * @param string $path * @param array $params * @param bool $mustClean */ PHP_METHOD(Phalcon_Mvc_View_Engine_Php, render){ zval *path = NULL, *params = NULL, *must_clean = NULL, *value = NULL, *key = NULL, *contents = NULL; zval *view = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzz", &path, ¶ms, &must_clean) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (Z_TYPE_P(must_clean) == IS_BOOL && Z_BVAL_P(must_clean)) { PHALCON_CALL_FUNC_NORETURN("ob_clean"); } if (!phalcon_valid_foreach(params TSRMLS_CC)) { return; } ah0 = Z_ARRVAL_P(params); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_1897_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_1897_0; } PHALCON_INIT_VAR(key); PHALCON_GET_FOREACH_KEY(key, ah0, hp0); PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); if (phalcon_set_symbol(key, value TSRMLS_CC) == FAILURE){ return; } zend_hash_move_forward_ex(ah0, &hp0); goto fes_1897_0; fee_1897_0: if (phalcon_require(path TSRMLS_CC) == FAILURE) { return; } if (Z_TYPE_P(must_clean) == IS_BOOL && Z_BVAL_P(must_clean)) { PHALCON_INIT_VAR(contents); PHALCON_CALL_FUNC(contents, "ob_get_contents"); PHALCON_INIT_VAR(view); phalcon_read_property(&view, this_ptr, SL("_view"), PH_NOISY_CC); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(view, "setcontent", contents, PH_NO_CHECK); } PHALCON_MM_RESTORE(); }
/** * Renders a view using the template engine * * @param string $path * @param array $params * @param boolean $mustClean */ PHP_METHOD(Phalcon_Mvc_View_Engine_Php, render){ zval *path, *params, *must_clean = NULL, *value = NULL, *key = NULL, *contents; zval *view; HashTable *ah0; HashPosition hp0; zval **hd; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz|z", &path, ¶ms, &must_clean) == FAILURE) { RETURN_MM_NULL(); } if (!must_clean) { PHALCON_INIT_VAR(must_clean); ZVAL_BOOL(must_clean, 0); } if (PHALCON_IS_TRUE(must_clean)) { PHALCON_CALL_FUNC_NORETURN("ob_clean"); } if (Z_TYPE_P(params) == IS_ARRAY) { if (!phalcon_is_iterable(params, &ah0, &hp0, 0, 0 TSRMLS_CC)) { return; } while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) { PHALCON_GET_FOREACH_KEY(key, ah0, hp0); PHALCON_GET_FOREACH_VALUE(value); if (phalcon_set_symbol(key, value TSRMLS_CC) == FAILURE){ return; } zend_hash_move_forward_ex(ah0, &hp0); } } if (phalcon_require(path TSRMLS_CC) == FAILURE) { return; } if (PHALCON_IS_TRUE(must_clean)) { PHALCON_INIT_VAR(contents); PHALCON_CALL_FUNC(contents, "ob_get_contents"); PHALCON_OBS_VAR(view); phalcon_read_property(&view, this_ptr, SL("_view"), PH_NOISY_CC); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(view, "setcontent", contents); } PHALCON_MM_RESTORE(); }