Helpers de la version 0.4.7

Hola Amigos.

Por acaso pasó algo raro con los helpers de la versión 0.4.7?

El img_tag() cuando lo tengo en local me muestra las imágenes cuando lo pongo asi img_tag("chiaraabbate/productos/cartera_prueba.jpg", "border: 0"), pero cuando lo subo a la Web no muestra las imágenes.

Eso pasa cuando estoy usando ajax. Si voy hasta la accion de mi controlador por ejemplo
http://www.desdelejos.com.py/v1/principal/productos lo muestra segun veo en el HTML escribe <!-- m --><a class="postlink" href="http://www.desdelejos.com.py/v1/public/img/chiaraabbate/productos/cartera_prueba.jpg">http://www.desdelejos.com.py/v1/public/ ... prueba.jpg</a><!-- m -->

Pero si estoy utilizando link_to_remote no lo muestra al ir a la accion y lo escribe en el HTML así <!-- m --><a class="postlink" href="http://www.desdelejos.com.py/v1/public/principal/img/chiaraabbate/productos/cartera_prueba.jpg">http://www.desdelejos.com.py/v1/public/ ... prueba.jpg</a><!-- m -->


Creo que esto no estaba pasando en la version 0.4.5.

Con el helper css también suele dar problemas. Las direcciones se mezclan. Al poner hasta el controlador no da problemas pero cuando se pone /accion/id llama mal a los archivos. por cierto tambien siempre escribe en el HTML un <link rel="stylesheet" type="text/css" href="/v1/public/css/1.css"/> que no tengo idea de que sea.

<link rel="stylesheet" type="text/css" href="/v1/css/chiaraabbate.css"/>
<link rel="stylesheet" type="text/css" href="/v1/public/principal/css/chiaraabbate.css"/>


Alguien sabe algo?

Comentarios

  • edited 3:18
    Hola Amigos.

    Después de mucho investigar me di cuenta que le problema es la constante KUMBIA_PATH. Por alguna razón cuando lo tengo en mi localhost setea la constante con /v1/ en caso de que mi directorio de kumbia lo renombre asi.
    Pero cuando la subo a la red y agrego una url completa directorio_kumbia/controller/action/id por ejemplo <!-- w --><a class="postlink" href="http://www.desdelejos.com.py/v1/principal/index/id">http://www.desdelejos.com.py/v1/principal/index/id</a><!-- w --> entonces setea la constante con /v1/public/principal/ y esto hace que los helper que se basan en esta constante escriban mal en el HTML.

    Ahora para corregir rapidamente cambie esa constante como una cadena en duro en img_tag(), stylesheet_link_tag() y javascript_include_tag() ya que no encuentro por ningun lado donde se setea esa constante en el framework.

    Alguien sabe algo de esto? A nadie le ocurrio lo mismo? eso me está pasando desde que cambie a la version 0.4.7
  • Fijate, a mi durante un tiempo me pasaron cosas similares, la unica manera que logre de solventarlo de forma temporal, fue, antes de utilizar cualquier helper hacer (puede ser al inicio de tu vista):
    &lt;?php
        unset&#40;$_REQUEST&#91;'id'&#93;&#41;
    ?&gt;
    

    Claro que esto no es lo mejor, incluso siempre me ha incomodado el comportamiento del id tanto en rails como en kumbia, pero de esa manera lo extermino.

    Me parece que el id no deberia modificar las rutas ni tampoco los links, pero es una convencion, no muy agradable, pero convencion al fin.

    Saludos.
  • edited 3:18
    como configuraste por ejemplo
    &#91;development&#93;
    database&#46;host = sql4&#46;php&#46;es
    database&#46;username = 1289546
    database&#46;password = 123
    database&#46;name = _tienda
    database&#46;type = mysql
    database&#46;dsn = www&#46;irraco&#46;es
    
    No deberias tener problema con las rutas, la verdad es que no comprendo bien que quieres que haga tu codigo. pero bueno espero esto ayude en algo.
  • edited 3:18
    La verdad que la version de kumbia que yo tengo 0.4.7 no tiene todos esos parametros

    [development]
    database.host = localhost
    database.username = root
    database.password =
    database.name = lourdesgamarra
    database.type = mysql

    le falta el database.dsn le tengo que agregar nada más?

    Mi código no es nada complejo. Un view con un img_tag para mostrar una imagen y el controller vacio y punto. cuando escribo <!-- w --><a class="postlink" href="http://www.loquesea.com/kumbia/controller">http://www.loquesea.com/kumbia/controller</a><!-- w --> se ve la imagen y cuando escribo <!-- w --><a class="postlink" href="http://www.loquesea.com/kumbia/controller/accion/id">http://www.loquesea.com/kumbia/controller/accion/id</a><!-- w --> no se ve la imagen. Al escribir la dirección completa setea mal el KUMBIA_PATH.
  • edited 3:18
    Podria poner el codigo como lo estas utilizando, parece que por ahi podria estar el problema.
  • edited 3:18
    Hola irraco.

    el controller lo tengo asi

    class PruebaController extends ApplicationController
    {
    function index()
    {

    }
    }

    y la vista asi. Tengo en la carpeta public/img/ una carpera llamada web donde esta esa imagen. en mi localhost entro asi (tengo un dominio virtual)
    <!-- m --><a class="postlink" href="http://www.vlourdesgamarra.com.py/v1/prueba">http://www.vlourdesgamarra.com.py/v1/prueba</a><!-- m --> y veo perfectamente la imágen. Al igual que cuando <!-- m --><a class="postlink" href="http://www.vlourdesgamarra.com.py/v1/prueba/index/1">http://www.vlourdesgamarra.com.py/v1/prueba/index/1</a><!-- m --> por ejemplo

    <?= img_tag("web/cat_accidentes.jpg", "border: 0") ?>

    Pero cuando la subo al hosting real al poner hasta index/1 escribe mal la dirección del archivo. Se setea mal la contante KUMBIA_PATH
  • edited 3:18
    Lo subí a un lugar.

    No puedo nomas dejarlo mucho tiempo asi

    Prueba <!-- m --><a class="postlink" href="http://www.sistema7.net/v1/prueba">http://www.sistema7.net/v1/prueba</a><!-- m --> y luego <!-- m --><a class="postlink" href="http://www.sistema7.net/v1/prueba/index/1">http://www.sistema7.net/v1/prueba/index/1</a><!-- m -->
  • edited 3:18
    Bueno, el poco codigo que das no aclara mis dudas, pero por lo que se ve tu problema es que no puedes mostrar una imagen que guardaste el nombre en una bd. Un detalle cuando guardas una imagen en aplicationController este se guarda por defecto en una carpeta upload que esta en img, ahora tu dices que la guardas en una carpeta llamada web, modificaste el metodo que guarda la imagen que se encuentra en la clase AplicationController?
    Sobre KUMBIA_PATH es poco probable que sea este tu problema, ya que este solo te extrae la ruta hasta la carpeta donde se encuentra tu proyecto que contiene a todo el framework. De todas maneras revisare pra poder ayudarte, el "1" supongo que es tu codigo de imagen en la bd, y index tu vista por defecto de tu controlador prueba.
    controlador/accion/id
    prueba/index/1
    
    En tu controlador prueba tienes definido el metodo index y ahi es donde haces un find(1) por ejemplo para mostrar tu imagen?
  • edited 3:18
    No amigo irraco.

    Yo ni siquiera hago nada de find. El código que te mostre es todo lo que tengo.ahí puse un 1 aunque era solo para ejemplo.mi controller esta vacio.lo que ves en la web es el mismo codigo que publique aqui.

    Yo cree a mano una carpeta dentro de public/img/ llamada web solo para separar unas imagenes de otras. Asi tendría una carpeta con imagenes para la web (front-end) y otras dentro de una carpeta admin por ejemplo para el administrador.

    A menos que a kumbia actualmente no es que le guste tanto que ponga las imágenes dentro de una sub-carpeta. Yo lo hice porque en el libro de kumbia dice que se puede.Por lo menos lo entendi asi. De todas maneras siempre que llego hasta el id (por ejemplo <!-- w --><a class="postlink" href="http://www.dominio.com/v1/controller/action/id">http://www.dominio.com/v1/controller/action/id</a><!-- w -->) me pasa esto. Lo que hice fue copiar el código qeu te mostre y lo levante para que lo pruebes.

    También estoy usando ajax en mi proyecto. Por ahi si por ese lado viene la mano.puedo enviar ese mismo proyecto que hice para levantarlo a la web. Ni siquiera hay acceso a BDDs ya que la imágen está en duro escrita en el img_tag()
  • edited 3:18
    Bueno ahora si ya creo comprender bien los problemas que se te presentan, no me di cuenta sobre los enlaces que mostraste, bueno analizando los mismos:
    <!-- m --><a class="postlink" href="http://www.sistema7.net/v1/prueba">http://www.sistema7.net/v1/prueba</a><!-- m --> .-Este se ejecuta bien porque llamas a una vista index por defecto. Cuando pulsas sobre este enlace lo que pasa es que primero se ejecuta tu metodo index que se encuentra en tu controlador prueba y luego recien se ejecuta la vista index que se encuentra en views dentro tu carpeta prueba. Este funciona bien porque esta en una primera carga de tu page.

    <!-- m --><a class="postlink" href="http://www.sistema7.net/v1/prueba/index/1">http://www.sistema7.net/v1/prueba/index/1</a><!-- m --> .- Este no te funciona porque estas ejecutando directamente el controlador. Para que me comprendas te lo explicare con un ejemplo, al ejecutar este enlace es como si tu estarias presionando un submit de un formulario que llenaste, pero primero cargaste el formulario y luego recien en una segunda carga de la pagina se envian tus datos, que llegan a un metodo de tu controlador y de ahi si quieres haces que retorne con un metodo route_to a tu formulario original, bueno este ejemplo mas o menos representa lo que estas intentando hacer; tu te estas yendo directo a la segunda carga directamente por eso tienes problemas con las rutas, las cosas son secuenciales, debes de plantearte otra manera de hacer lo que deceas.


    Y para muestra de tus errores aqui esta lo que genera tu imagen:
    &lt;img src='/v1/img/web/cat_accidentes&#46;jpg' border=&quot;0&quot; alt=&quot;&quot; /&gt; este pertenece al primer enlace&#46;
    &lt;img src='/v1/public/prueba/img/web/cat_accidentes&#46;jpg' border=&quot;0&quot; alt=&quot;&quot; /&gt; es del segundo enlace&#46;
    

    Cuando haces tareas similares siempre chequea como te genera el html de tu aplicacion.

    Para finalizar.... si quieres ayuda real, plantea lo que intentas hacer resumido y claro, asi te coperariamos con ideas, y no apuntar a algo que a veces uno esta haciendo mal, y trata de mostrarlo como falla de la herramienta.
    disculpa si te cance <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->
    <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
  • edited 3:18
    Hola Irraco. Según tu explicación.

    Yo lo que hago es tener un link que tira al controlador/accion/id necesario para mostrar mi pagina.

    Por ejemplo. TEngo un galeria de productos. Al darle click a un producto el enlace seria <!-- w --><a class="postlink" href="http://www.dominio.com/v1/web/producto/1">http://www.dominio.com/v1/web/producto/1</a><!-- w --> asi mostraria en la vista producto el producto con id = 1 es querer hacer un <!-- w --><a class="postlink" href="http://www.dominio.com/v1/producto.php?id=1">http://www.dominio.com/v1/producto.php?id=1</a><!-- w -->

    Ahi ocurre el error. Sino debo usar ese tipo de link como voy a una pagina de detalle de producto para que muestre el producto con id 1? Es decir. Lógicamente el ejemplo que alze no es para usarlo directamente escribiendo esa url en teoria esa url se genera "www.dominio.com/v1/web/producto/" . $productoId;

    Como lo tengo que hacer entonces? porque ese link me tira a la página que no veo los css ni las imagenes. De paso eso si funcionaba en la version 0.4.5 me imagino que acurrió algún cambio. Por eso estaba convencido que era el tema del KUMBIA_PATH
  • edited 3:18
    bueno la verdad me sorprende lo que comentas, y la verdad no logro comprender del como parte tu aplicacion para lo que deceas hacer y como deceas que termine, disculpame pero no logro entenderte.
    Pero haber por ejemplo usas algun template que se ubica en carpeta layout,previo a mostrar tu aplicacion y dentro todo eso usas ajax para mostrar tu aplicacion o las imagenes?
  • edited 3:18
    No uso ningun layout amigo irraco. Voy a tratar de armar una aplicacion lo mas sencilla posible que ilustre el ejemplo y te la envío te parece?

    Porque básicamente es un link_to_remote que apunta a ese tipo de direccion que te mostre. Pero no logro por lo visto hacerme entender.

    Puede ser eso?
  • edited 3:18
    bueno ahora das un dato mas, me imagino que lo que quieres hacer es cargar imagenes en div con link_to_remote, se resume a esto tu aplicacion?
    bueno, ahora el link_to_remote lo cargaste con ajax, es decir si pertenece a una pagina inmersa en tu pagina principal?
  • edited 3:18
    TEngo una pagina llamada principal que tiene todos los links. Cada link es un link_to_remote y carga siempre un pedazo de pagina en un lugar determinado (Como si fuera un template) Al darle click muestro la otra pagina pero me imagino que ese no es el problema ya que como lo mostre si acceso directamente a la pagina que tiene las imagenes escribiendo la direccion url completa tampoco se ven las imagenes.

    La misma pagina principal de la que te hablo si la llamo desde otra pagina poniendo una direccion completa (hasta el id) tiene el mismo problema.
  • edited 3:18
    TEngo una pagina llamada principal que tiene todos los links. Cada link es un link_to_remote y carga siempre un pedazo de pagina en un lugar determinado (Como si fuera un template) Al darle click muestro la otra pagina pero me imagino que ese no es el problema ya que como lo mostre si acceso directamente a la pagina que tiene las imagenes escribiendo la direccion url completa tampoco se ven las imagenes.

    La misma pagina principal de la que te hablo si la llamo desde otra pagina poniendo una direccion completa (hasta el id) tiene el mismo problema.
  • edited 3:18
    De todas maneras.

    Saben donde se setea la constante KUMBIA_PATH? Hasta que encuentre el problema voy a tener que cambiar esa constante. Ahora mismo estoy cambiando en cada helper la constante por un valor en duro (/v1/) pero la verdad que seria mejor cambiar la constante por única vez.
  • edited 3:18
    disculpa por no contestar antes, es que la verdad no hay tiempo y tampoco pude ver este asunto, pero por lo que hasta ahora veo crees que el problema es con KUMBIA_PATH, esta constante te extrae la ruta hasta donde estan los archivos del framework.
    en la version 0.4.7a
    linea 61
    $path = join&#40;array_slice&#40;split&#40; &quot;/&quot; ,dirname&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;&#41;,1,-1&#41;,&quot;/&quot;&#41;;
    line  65 
    $_SESSION&#91;'KUMBIA_PATH'&#93; = $path;
    
    en file index.php dentro la carpeta public

    en la 05 esta en el metodo init_application() del file kumbia.php

    Pero creo que tu problema no esta aqui.
    Cuanquier cosa preguntas, en cuanto tenga tiempo vere este tema y el del _ que quedan pendientes.
  • edited 3:18
    Por favor irraco no te disculpes. Me imagino que estás con mucho trabajo al igual que yo y lo entiendo. Por lo menos durante este tiempo en que defino el problema lo voy a cambiar para que funcione la aplicación.

    De todas maneras, Pongo un ejemplo lo mas completo que puedo para cuando haya tiempo

    en la carpeta public/img/ cree una carpeta web y dentro de esta una imagen 1.jpg por ejemplo

    Tengo una vista view/prueba/index.phtml
    <?= link_to_remote("link", "update: contenedorPanelPrincipal", "action: prueba/imagen/1") ?>

    <div id="contenedorPanelPrincipal"></div>


    Mi controller es

    class PruebaController extends ApplicationController
    {
    function index()
    {

    }

    function imagen($img)
    {
    $this->img = $img;
    }
    }

    su vista es view/prueba/imagen.phtml
    <?= img_tag("web/$img.jpg", "border: 0") ?>


    Gracias irraco por toda la ayuda. Cualquier cosa estamos en contacto
  • edited 3:18
    Por lo que vi intenta modificando lo siguiente:
    function imagen&#40;$id&#41; 
    &#123; 
    $this-&gt;img = $id; 
    &#125;
    

    Creo ahora ya no tendrias que tener problemas.
    Exitos!!!
  • edited 3:18
    Da lo mismo amigo. De igual manera tengo el mismo problema. Yo puse directamente $img para el ejemplo pero siempre suelo usar $id aunque lo que venga como parametro no sea un $id.
  • edited 3:18
    lo probe de dos maneras, una es como antes ya te dije y me funcionaron ambos a las mil maravillas
    Tengo una vista view/prueba/index&#46;phtml
    &lt;?= link_to_remote&#40;&quot;link&quot;, &quot;update&#58; contenedorPanelPrincipal&quot;, &quot;action&#58; prueba/imagen/1&quot;&#41; ?&gt;
    
    &lt;div id=&quot;contenedorPanelPrincipal&quot;&gt;&lt;/div&gt;
    
    
    Mi controller es
    
    class PruebaController extends ApplicationController
    &#123;
    function index&#40;&#41;
    &#123;
    
    &#125;
    
    function imagen&#40;$id&#41;
    &#123;
    $this-&gt;img = $id;
    &#125;
    &#125;
    
    su vista es view/prueba/imagen&#46;phtml
    &lt;?= img_tag&#40;&quot;web/$img&#46;jpg&quot;, &quot;border&#58; 0&quot;&#41; ?&gt;
    
    
    Yo lo plantee asi&#58;
    Tengo una vista view/prueba/index&#46;phtml
    &lt;?= link_to_remote&#40;&quot;link&quot;, &quot;update&#58; principal&quot;, &quot;action&#58; prueba/imagen/1&quot;&#41; ?&gt;
    &lt;div id=&quot;principal&quot;&gt;&lt;/div&gt;
    
    
    Mi controller es
    
    &lt;?php
       class PruebaController extends ApplicationController
       &#123;
        function index&#40;&#41;&#123;&#125;
        function imagen&#40;&#41;&#123;&#125;
       &#125;
    ?&gt;
    
    su vista es view/prueba/imagen&#46;phtml
    &lt;?= img_tag&#40;&quot;web/$id&#46;png&quot;, &quot;border&#58; 0&quot;&#41; ?&gt;
    


    y tb de esta otra manera, incluso subido a un hosting lo probe.
    Tengo una vista view/prueba/index&#46;phtml
    &lt;?= link_to_remote&#40;&quot;link&quot;, &quot;update&#58; principal&quot;, &quot;action&#58; prueba/imagen/1&quot;&#41; ?&gt;
    &lt;div id=&quot;principal&quot;&gt;&lt;/div&gt;
    
    
    Mi controller es
    
    &lt;?php
       class PruebaController extends ApplicationController
       &#123;
        function index&#40;&#41;&#123;&#125;
        function imagen&#40;&#41;&#123;&#125;
       &#125;
    ?&gt;
    
    su vista es view/prueba/imagen&#46;phtml
    &lt;?= img_tag&#40;&quot;web/$id&#46;png&quot;, &quot;border&#58; 0&quot;&#41; ?&gt;
    
    


    Por si acaso modifica en el file tags.php el metodo img_tag en la linea
    $code.="<img src='".KUMBIA_PATH."img/{$atts[0]}' ";
    es la cuarta linea comenzando a contar desde la primera linea donde se declara al metodo, y modificalo asi
    $code.="<img src='".KUMBIA_PATH."img/".urldecode($atts[0])."' ";

    Ojala y te ayuden!!!
Sign In or Register to comment.