1
alain01
Overload the images on the search.php page
  • 2021/10/15 15:41

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


Hi,
I need to change the icons on the /search.php page.

Resized Image


Basic methode :
I change on each module the file /modules/module_name/assets/images/image_search.png
BUT it's a bad method cause when i will update the module, i will erase my customize pictures

Overload method :
I add an new overloaded image in this directory:
/themes/my_theme/modules/module-1/assets/images/image_search.png
But it doesn't work

URL concerned :
1 - /search.php
2 - /modules/profile/userinfo.php?uid=x

Concrete example :
Search page: https://www.monxoops.fr/search.php?query=xswatch4&action=results
Profile page : https://www.monxoops.fr/modules/profile/userinfo.php?uid=3

I want to change this image : [img ]https://www.monxoops.fr/modules/xmnews/assets/images/xmnews_search.png[/img]
to
[img ]https://www.monxoops.fr//themes/mx-theme/modules/xmnews/assets/images/xmnews_search.png[/img] (just an example to view the change)

Any good solution ?

2
alain01
Re: Overload the images on the search.php page
  • 2021/10/17 0:22

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


Ok,
I found a solution but I dont know How to test if a file exist in the template.

My code for the profile_userinfo.tpl overload file (http://mysite.com/themes/my_theme/modules/profile/profile_userinfo.tpl)

le="color: #000000"><?php <li> <{assign var="chaine_start" value="$xoops_url/modules/"}> <{assign var="chaine_surcharge" value=$xoops_imageurl|cat:$result.image|replace:$chaine_start:''}> <{if $chaine_surcharge}> <img src="<{$chaine_surcharge}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a> (<{$result.time}>) <{else}> <img src="<{$result.image}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a> (<{$result.time}>) <{/if}> </li>


I know that
le="color: #000000"><?php <{if $chaine_surcharge}>
is always true but I dont find a test to test the existence of a file (image)

So the question now is :
How can I test the existence of an image with smarty in a template file ?

3
alain01
Re: Overload the images on the search.php page
  • 2021/10/17 0:27

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


To understand the code :
Code :
le="color: #000000"><?php <{assign var="chaine_start" value="$xoops_url/modules/"}> chaine_start = <{$chaine_start}> <br /> <{assign var="chaine_surcharge" value=$xoops_imageurl|cat:$result.image|replace:$chaine_start:''}> chaine_surcharge = <{$chaine_surcharge}> <br />


result :
Quote:

4
alain01
Re: Overload the images on the search.php page
  • 2021/10/17 21:43

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


Ok, error in my code.

The code should be :
le="color: #000000"><?php <{assign var="chaine_surcharge" value=$xoops_imageurl|cat:"modules/"|cat:$result.image|replace:"$xoops_url/modules/":''}>

result in a example :
Quote:So with that, I can overload the images...
But same trouble,
i dont know to test the existence of a file (image) with smarty.

5
zyspec
Re: Overload the images on the search.php page
  • 2021/10/19 20:36

  • zyspec

  • Module Developer

  • Posts: 1095

  • Since: 2004/9/21


@alain01

You should be able to just use something like this:
le="color: #000000"><?php <{if file_exists($chaine_surcharge)}> Found my file<br> <{else}> Unknown file<br> <{/if}>

6
alain01
Re: Overload the images on the search.php page
  • 2021/10/19 21:38

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


Thank you for the syntax, zyspec,
but it does not work.

le="color: #000000"><?php <{if file_exists($chaine_surcharge)}> <div class="d-inline"><img src="<{$chaine_surcharge}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a></div> <div class="d-none d-md-inline "><span class="fas fa-calendar fa-sm ml-2"></span> <{$result.time}></div> <br /> <{else}> <img src="<{$result.image}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a> (<{$result.time}>)<br /> <{/if}>

The condition is always false... but the file exists

If I delete the test, the image is overloaded.

7
Mamba
Re: Overload the images on the search.php page
  • 2021/10/19 23:33

  • Mamba

  • Moderator

  • Posts: 11521

  • Since: 2004/4/23


Are you using the absolute path? At least that's what they're talking about it here

See also here
Support XOOPS => DONATE
Use 2.5.11 | Docs | Modules | Bugs

8
alain01
Re: Overload the images on the search.php page
  • 2021/10/20 6:16

  • alain01

  • Just can't stay away

  • Posts: 544

  • Since: 2003/6/20


yes, absolute path.
Thank you for the links .

le="color: #000000"><?php <{assign var="chaine_surcharge" value=$xoops_imageurl|cat:"modules/"|cat:$result.image|replace:"$xoops_url/modules/":''}> chaine_surcharge : <{$chaine_surcharge}> <br /> <{if file_exists($chaine_surcharge)}> <div class="d-inline"><img src="<{$chaine_surcharge}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a></div> <div class="d-none d-md-inline "><span class="fas fa-calendar fa-sm ml-2"></span> <{$result.time}></div> <br /> <{else}> <img src="<{$result.image}>" alt="<{$module.name}>"> <a href="<{$result.link}>"><{$result.title}></a> (<{$result.time}>)<br /> <{/if}>


Result:
chaine_surcharge : http://xoops-tests2.local/themes/mx-theme/modules/xmnews/assets/images/xmnews_search.png

and the test is always false so the overloaded does not work.

Quote:
In smarty, you cannot use file_exists() on a URL, but you can use it on a local file

I think, the best way is to check in your controller.

I tried

le="color: #000000"><?php <{$file_headers = @get_headers($chaine_surcharge)}> file_headers = <{$file_headers}> <br />


but the result is :
Quote:
file_headers =

9
Mamba
Re: Overload the images on the search.php page
  • 2021/10/20 12:39

  • Mamba

  • Moderator

  • Posts: 11521

  • Since: 2004/4/23


This is how you could do it (this is for the xbootstrap theme and the Publisher module):

1) create directory "images" in "publisher" folder in your theme, e.g.
/themes/xbootstrap/modules/publisher/images/

2) copy the image of your choice to this folder, and name it e.g. "search.png"

Repeat it for all modules that you want to modify.
Note: the name of the file should be the same for all modules!

3) copy the file "system_search.tpl"
from /modules/system/templates/
to /themes/xbootstrap/modules/system/

4) modify the file "system_search.tpl" around line 17:

le="color: #000000"><?php <{foreach item=data from=$search.module_data}> <img src="<{$data.image_link}>" title="<{$data.image_title}>" alt="<{$data.image_title}>"/> <a href="<{$data.link}>"><{$data.link_title}></a>


to this:

le="color: #000000"><?php <{foreach item=data from=$search.module_data}> <{*----------- new code start -------------*}> <{assign var="module_name" value=$search.module_name|lower}> <{assign var="image" value="themes/xbootstrap/modules/$module_name/images/search.png"}> <{if file_exists($image)}> <img src="<{$image}>" <{else}> <img src="<{$data.image_link}>" <{/if}> title="<{$data.image_title}>" alt="<{$data.image_title}>"/> <a href="<{$data.link}>"><{$data.link_title}></a> <{*----------- new code ends -------------*}>


Now if you go to http://myxoopssite/search.php and do the search, Publisher will show you the new icons.
Support XOOPS => DONATE
Use 2.5.11 | Docs | Modules | Bugs

10
zyspec
Re: Overload the images on the search.php page
  • 2021/10/20 13:35

  • zyspec

  • Module Developer

  • Posts: 1095

  • Since: 2004/9/21


@alain01,

The file you're checking for must be a path, not a URL. So chaine_surcharge should be something like:
/var/www/html/themes/mx-theme/modules/xmnews/assets/images/xmnews_search.png

use something like XOOPS_PATH, not XOOPS_URL to build the file location.

Who's Online

130 user(s) are online (92 user(s) are browsing Support Forums)


Members: 0


Guests: 130


more...

Donat-O-Meter

Stats
Goal: $15.00
Due Date: Jul 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $15.00
Make donations with PayPal!

Latest GitHub Commits