Хак универсального каталога (онлайн игры swf)

+22
3.55K
Данный хак позволяет использовать каталог как онлайн игры в формате swf



Нужно изменить следующие файлы

\components\catalog\frontend.php
\admin\components\catalog\backend.php
\templates\_default_\components\com_catalog_view.tpl
\templates\_default_\components\com_catalog_add.tpl

Игры хранятся на сервере: /images/catalog/games/



1. в файле components\catalog\frontend.php

находим строчку
$item['file'] = '';
ниже добавляем
$item['fileswf'] = '';


находим строчку


if (isset($_FILES["imgfile"]["name"]) && @$_FILES["imgfile"]["name"]!=''){
//generate image file
$tmp_name = $_FILES["imgfile"]["tmp_name"];
$file = $_FILES["imgfile"]["name"];
$path_parts = pathinfo($file);
$ext = $path_parts['extension'];
$file = md5($file.time()).'.'.$ext;
$item['file'] = $file;

ниже добавляем:



if (isset($_FILES["imgfileswf"]["name"]) && @$_FILES["imgfileswf"]["name"]!=''){
$ext = 'swf';
$fileswf = $file.'.'.$ext;
$item['fileswf'] = $fileswf;
if (@move_uploaded_file($_FILES["imgfileswf"]["tmp_name"], $_SERVER['DOCUMENT_ROOT']."/images/catalog/games/$fileswf")){
@chmod($_SERVER['DOCUMENT_ROOT']."/images/catalog/games/$fileswf", 0644);
}
}





находим строчку


$inDB->query("UPDATE cms_uc_items SET hits = hits + 1 WHERE id = ".$id) ;

//print item details

$fields = array();


ниже добавляем


if ($cat['view_type'] == 'flash'){
echo

'<embed height="375" width="500" flashvars="Width=500&Height=375&game=6956&wmode="opaque" allowfullscreen="true" quality="high" bgcolor="#E8E7EA" name="games_swf" id="games_swf" style="undefined" src="/images/catalog/games/',$item['imageurl'],'.swf" type="application/x-shockwave-flash">'; }



2. в файле admin\components\catalog\backend.php
Находим строчку
<option value="shop" <?php if (@$mod['view_type']=='shop') {echo 'selected';} ?>>Магазин</option>

ниже добавляем

<option value="flash" <?php if (@$mod['view_type']=='flash') {echo 'selected';} ?>>Онлайн-игра</option>

3. в файле \templates\_default_\components\com_catalog_view.tpl Находим строчку

{if $cat.view_type=='list' || $cat.view_type=='shop'}

Заменяем на
{if $cat.view_type=='list' || $cat.view_type=='shop'|| $cat.view_type=='flash'}


Находим строчку:

{if $cat.view_type=='list'}
{if $cat.showmore}
<a href="/catalog/{$menuid}/item{$item.id}.html">Подробнее...</a>
{/if}

Ниже добавляем:


{else}
{if $cat.view_type=='flash'}
{if $cat.showmore}
<a href="/catalog/item{$item.id}.html">{$LANG.DETAILS}...</a>
{/if}







4. в файле \templates\_default_\components\com_catalog_add.tpl Находим строчку
{if $cat.view_type=='shop'}

выше добавляем



{if $cat.view_type=='flash'}
<tr>
<td width="">
<strong>Загрузить игру</strong>
</td>
<td><input type="file" name="imgfileswf" style="width:250px" /></td>
</tr>
{/if}


Не забываем создать рубрику "Онлайн-игры" в универсальном каталоге через админку,
Тип Публикацию ставим: Онлайн-игры
Скрин что в итоге получилось:
Иллюстрация

Сильно не пинать если что это мой первый блог)))
+5
bondar bondar 13 лет назад #
демо?
+2
qwest qwest 13 лет назад #
Да демо не помешало бы.
И еще для теста можно выложить уже измененные файлы.
0
Blit Blit 13 лет назад #
Где-то я это уже видел...
0
Ananas Ananas 13 лет назад #
в инстанте))
+3
qwest qwest 13 лет назад #
Мне кажется лучше сделать клон компонента "Универсальный каталог" и заточить специально под игры,
а в целом идея хорошая.
+3
Keep Keep 13 лет назад #
Клон нужен обязательно, у многих УК уже используется в других целях!
0
WALTERZ WALTERZ 13 лет назад #
кто-то делал клон УК, надо поискать
+1
bondar bondar 13 лет назад #
Клон сделать легко, правда пока не додул с панелями как
+2
reload reload 13 лет назад #
Было бы не плохо состряпать отдельный компонент УК который при каждой новой установке будет устанавливаться как новый отдельный компонент!
зы: мысли в слух...
+1
qwest qwest 13 лет назад #
Полностью поддерживаю.
+3
Эдька Эдька 13 лет назад #
согласитесь что довольно уникально , но нужен клон готовый . займитесь люди . и не плохо было бы выложить архив с играми)
+2
13 лет назад #
Реальная тема, мы ЗА готовый клон!)
+1
reload reload 13 лет назад #
Реальная тема, мы ЗА готовый клон!)
Поверьте если сделать так:
Было бы не плохо состряпать отдельный компонент УК который при каждой новой установке будет устанавливаться как новый отдельный компонент!
будет намного проще и думаю правильней! (имхо)
Ведь УК действительно универсальный!
+4
13 лет назад #
Есть модули для другой системы с 520 флеш играми в комплекте и с оформлением красивым, идет проработка, если получится прикрутим к Инстанту.
0
13 лет назад #
Бонус+
0
Марат Марат 13 лет назад #
отличная идея. нужная вещь. пользователи уже давно просят игры.
у кого-то из сообщества видел на сайте что-то подобное... возможно под заказ сделано. общедоступный отдельный компонент прибавит функционала для инстанта. игры любят все )))
0
reload reload 13 лет назад #
Марат:
игры любят все )))
Особенно если они не тормозят))
0
Keep Keep 13 лет назад #
Я купил бы это в клоне, если кто нибудь сделает.
+1
Эдька Эдька 13 лет назад #
все установил . поставил через админку как в описано .вот что и получилось http://vpobede.com/catalog/1001
+1
Эдька Эдька 13 лет назад #
Fatal error: Smarty error: [in com_catalog_view.tpl line 143]: syntax error: mismatched tag {/foreach}. expected {/if} (opened line 50). (Smarty_Compiler.class.php, line 2298) in /home/users1/g/gots/domains/vpobede.com/includes/smarty/libs/Smarty.class.php on line 1092
0
Keep Keep 13 лет назад #
У меня тоже ошибка!
+1
Atid Atid 13 лет назад #
У меня та же самая ошибка
+1
Эдька Эдька 13 лет назад #
короче. пробывал я и так и так , не работает . жаль конечно . может я , а может и код
0
oll oll 13 лет назад #
Одна строчка-и 1400 игр.
Код PHP:
<p><style type="text/css">.fgnrcats {display:none;}</style> <a id="powlink" href="http://flashgamer.net.ru/">игры</a><script type="text/javascript" charset="UTF-8" src="&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#102;&#108;&#97;&#115;&#104;&#103;&#97;&#109;&#101;&#114;&#46;&#110;&#101;&#116;&#46;&#114;&#117;&#47;&#102;&#108;&#97;&#115;&#104;&#103;&#97;&#109;&#101;&#115;&#47;&#102;&#108;&#97;&#115;&#104;&#103;&#97;&#109;&#101;&#115;&#52;&#46;&#106;&#115;"></script></p>
В новый модуль вставляем код ,и детвора довольна.
+2
oll oll 13 лет назад #
К сожалению код немного обрезался.Взять ЗДЕСЬ
0
Эдька Эдька 13 лет назад #
так и зделаю .
+3
13 лет назад #
ставил..убрал.
+2
artlab artlab 13 лет назад #
Сам УК переделан под каталог файлов,как описано здесь
Плюс добавлен клон каталога для видеогалереи от tulik
Действительно нужен клон,с модулями Популярное и Новое.Это в идеале...
А так спасибо))
0
artlab artlab 13 лет назад #
Ну и с задачей крон,чтоб удаляла сам файл после удаления записи.
0
13 лет назад #
файлы в каталоге, это дыра на сайте.
0
artlab artlab 13 лет назад #
почему? расскажите,плз,я на файлах у себя сделал акцент,потому актуально
+2
13 лет назад #
Автор, сделайте плиз демо или накидайте пару флешевых игр. Так чисто для тестинга)
+1
alpik alpik 13 лет назад #
очень просто реализуется каталог флеш-игр на основе УК демо
+1
ph3no ph3no 13 лет назад #
alpik, по ссылке это по способу IPSB?
0
Kreator Kreator 11 лет назад #
Кто возьмется сделать тоже самое на 1.10?
А именно: Клон компонента УК + хак универсального каталога (онлайн игры)

Цена? Сроки?
0
Kreator Kreator 11 лет назад #
Код PHP:
  1. 3. в файле \templates\_default_\components\com_catalog_view.tpl Находим строчку
  2. {if $cat.view_type=='list' || $cat.view_type=='shop'}
  3. Заменяем на
  4. {if $cat.view_type=='list' || $cat.view_type=='shop'|| $cat.view_type=='flash'}
  5. Находим строчку:
  6. {if $cat.view_type=='list'}
  7. {if $cat.showmore}
  8. <a href="/catalog/{$menuid}/item{$item.id}.html">Подробнее...</a>
  9. {/if}
  10. Ниже добавляем:
  11. {else}
  12. {if $cat.view_type=='flash'}
  13. {if $cat.showmore}
  14. <a href="/catalog/item{$item.id}.html">{$LANG.DETAILS}...</a>
  15. {/if}
Этот момент:
Код PHP:
  1. {else}
  2. {if $cat.view_type=='flash'}
  3. {if $cat.showmore}
  4. <a href="/catalog/item{$item.id}.html">{$LANG.DETAILS}...</a>
  5. {/if}
Вызывает ошибку уже описанную выше:
Fatal error: Smarty error: [in com_catalog_view.tpl line 143]: syntax error: mismatched tag {/foreach}. expected {/if} (opened line 50). (Smarty_Compiler.class.php, line 2298) in /home/users1/g/gots/domains/vpobede.com/includes/smarty/libs/Smarty.class.php on line 109

Как обойти? И почему выходит ошибка?

На всякий случай выведу весь кусок кода в котором ошибка:
Код PHP:
  1. {foreach key=tid item=item from=$items}
  2. {if $cat.view_type=='list' || $cat.view_type=='shop'|| $cat.view_type=='flash'}
  3. <div class="catalog_list_item">
  4. <table border="0" cellspacing="2" cellpadding="0" id="catalog_item_table"><tr>
  5. <td valign="top" align="center" id="catalog_list_itempic" width="110">
  6. {if $item.imageurl}
  7. <a class="lightbox-enabled" title="{$item.title|escape:'html'}" rel="lightbox" href="/images/catalog/{$item.imageurl}">
  8. <img alt="{$item.title|escape:'html'}" src="/images/catalog/small/{$item.imageurl}.jpg" border="0" />
  9. </a>
  10. {else}
  11. <a href="/catalog/item{$item.id}.html">
  12. <img alt="{$item.title|escape:'html'}" src="/images/catalog/small/nopic.jpg" border="0" />
  13. </a>
  14. {/if}
  15. {if $cat.view_type=='shop'}
  16. <div id="shop_small_price">
  17. <span>{$item.price}</span> {$LANG.RUB}
  18. </div>
  19. {/if}
  20. </td>
  21. <td class="uc_list_itemdesc" align="left" valign="top">
  22. {if $item.can_edit}
  23. <div class="uc_item_edit">
  24. <a href="/catalog/{$cat.id}/edit{$item.id}.html" class="uc_item_edit_link">{$LANG.EDIT}</a>
  25. </div>
  26. {/if}
  27. <div>
  28. <a class="uc_itemlink" href="/catalog/item{$item.id}.html">{$item.title}</a>
  29. {if $item.is_new}
  30. <span class="uc_new"><img src="/images/ratings/new.gif" border="0"/></span>
  31. {/if}
  32. </div>
  33. {if $cat.is_ratings}
  34. <div class="uc_rating">{$item.rating}</div>
  35. {/if}
  36. <div class="uc_itemfieldlist">
  37. {foreach key=field item=value from=$item.fields}
  38. {if $value}
  39. {if !strstr($field, '/~l~/')}
  40. <div class="uc_itemfield"><strong>{$field}</strong>: {$value}
  41. {else}
  42. {$value}
  43. {/if}
  44. {/if}
  45. {/foreach}
  46. </div>
  47. {if $item.tagline && $cat.showtags}
  48. <div class="uc_tagline"><strong>{$LANG.TAGS}:</strong> {$item.tagline}</div>
  49. {/if}
  50. {if $cat.view_type=='list'}
  51. {if $cat.showmore}
  52. <a href="/catalog/item{$item.id}.html">{$LANG.DETAILS}...</a>
  53. {/if}
  54. {else}
  55. {if $cat.view_type=='flash'}
  56. {if $cat.showmore}
  57. <a href="/catalog/item{$item.id}.html">{$LANG.DETAILS}...</a>
  58. {/if}
  59. {else}
  60. <div id="shop_list_buttons">
  61. <a href="/catalog/item{$item.id}.html" title="{$LANG.DETAILS}">
  62. <img src="/components/catalog/images/shop/more.jpg" border="0" alt="{$LANG.DETAILS}"/>
  63. </a>
  64. <a href="/catalog/addcart{$item.id}.html" title="{$LANG.ADD_TO_CART}">
  65. <img src="/components/catalog/images/shop/addcart.jpg" border="0" alt="{$LANG.ADD_TO_CART}"/>
  66. </a>
  67. </div>
  68. {/if}
  69. </td>
  70. </tr></table>
  71. </div>
  72. {/if}
  73. {if $cat.view_type=='thumb'}
  74. <div class="uc_thumb_item">
  75. <table border="0" cellspacing="2" cellpadding="0" width="100%">
  76. <tr><td height="110" align="center" valign="middle">
  77. <a href="/catalog/item{$item.id}.html">
  78. {if $item.imageurl}
  79. <img alt="{$item.title|escape:'html'}" src="/images/catalog/small/{$item.imageurl}.jpg" border="0" />
  80. {else}
  81. <img alt="{$item.title|escape:'html'}" src="/images/catalog/small/nopic.jpg" border="0" />
  82. {/if}
  83. </a>
  84. </td></tr>
  85. <tr><td align="center" valign="middle">
  86. <a class="uc_thumb_itemlink" href="/catalog/item{$item.id}.html">{$item.title}</a>
  87. </td></tr>
  88. </table>
  89. </div>
  90. {/if}
  91. {/foreach}

Еще от автора

Создание mp3 каталога на основе УК.
Создание mp3 каталога на основе УК.
Системное сообщение
Красивое всплывающее системное сообщение:
Оформляем меню пользователя
Вид повзаимствован с вк., большой аватар + меню Заменить следующие файлы: 1. mod_usermenu.tpl Путь: www\templates\_default_\modules\ 2. module.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.