Универсальный каталог

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Сохранение записи при добавлении пользователем

#1 26 августа 2014 в 16:52
Доброго. Подскажите пожалуйста решение, в php не силён. При добавлении и последующем сохранении пользователем в УК новой записи открывается раздел, в который добавлялась запись, а требуется перенаправить пользователя в личный кабинет. Версия 1.10.1
Я так понимаю, править нужно тут — /templates/_default_/components/com_catalog_add.tpl
Кнопка "<input type="submit" name="submit" value="{$LANG.SAVE}" style="font-size:18px" />" в самом низу кода.

  1. <script type="text/javascript">
  2. {if $is_admin}
  3. {literal}
  4. function selectCat(){
  5. cat_id = $("#cat_id option:selected").val();
  6. window.location.href = '/catalog/'+cat_id+'/add.html';
  7. }
  8. {/literal}
  9. {/if}
  10. {literal}
  11. function showPrices(){
  12.  
  13. var url = "/templates/vobuhove/fulldesc.html";
  14.  
  15. rep_win = window.open(url,"Window1", "menubar=yes,width=600,toolbar=no,location=no,scrollbars=yes");
  16.  
  17. }
  18. {/literal}
  19. </script>
  20.  
  21.  
  22. <div class="con_heading">
  23. {if $do=='add_item'}{$LANG.ADD_ITEM}{/if}
  24. {if $do=='edit_item'}{$LANG.EDIT_ITEM}{/if}
  25. </div>
  26.  
  27. <div id="configtabs">
  28.  
  29. <div id="form">
  30. <form id="add_form" method="post" action="/catalog/{$cat_id}/submit.html" enctype="multipart/form-data">
  31. <table cellpadding="5" cellspacing="0" style="margin-bottom:10px">
  32. <tr>
  33. <td width="210">
  34. <strong>{$LANG.TITLE}:</strong>
  35. </td>
  36. <td><input type="text" name="title" id="title" value="{$item.title|escape:'html'}" style="width:250px"/></td>
  37. </tr>
  38. {if $is_admin}
  39. <tr>
  40. <td width="210">
  41. <strong>{$LANG.CAT}:</strong>
  42. </td>
  43. <td><select style="width:250px" name="cat_id" id="cat_id" onchange="selectCat();">{$cats}</select></td>
  44. </tr>
  45. {/if}
  46. <tr>
  47. <td width="">
  48. <strong>{$LANG.IMAGE}:</strong>
  49. </td>
  50. <td>
  51. {if $do=='edit_item' && $item.imageurl}
  52. <div style="margin-bottom:4px;">
  53. <a href="/images/catalog/{$item.imageurl}" target="_blank">{$item.imageurl}</a>
  54. </div>
  55. {/if}
  56. <table border="0" cellpadding="0" cellspacing="0">
  57. <tr>
  58. <td><input name="imgfile" type="file" id="imgfile" size="16" /></td>
  59. {if $do=='edit_item' && $item.imageurl}
  60. <td style="padding-left:15px">
  61. <label>
  62. <input type="checkbox" value="1" name="delete_img" />
  63. {$LANG.DELETE}
  64. </label>
  65. </td>
  66. {/if}
  67. </tr>
  68. </table>
  69. </td>
  70. </tr>
  71. {if $cat.view_type=='shop'}
  72. <tr>
  73. <td width="">
  74. <strong>{$LANG.PRICE}:</strong>
  75. </td>
  76. <td>
  77. <input type="text" name="price" value="{$item.price|escape:'html'}" style="width:250px"/>
  78. </td>
  79. </tr>
  80. <tr>
  81. <td width="">
  82. <strong>{$LANG.CAN_MANY}:</strong>
  83. </td>
  84. <td>
  85. <input type="radio" name="canmany" value="1"> {$LANG.YES}
  86. <input type="radio" name="canmany" value="0" checked="checked"> {$LANG.NO}
  87. </td>
  88. </tr>
  89. {/if}
  90. <tr>
  91. <td width="">
  92. <strong>{$LANG.TAGS}:</strong><br/>
  93. <span class="hint">{$LANG.KEYWORDS}</span>
  94. </td>
  95. <td>
  96. <input type="text" name="tags" value="{$item.tags|escape:'html'}" style="width:250px"/>
  97. </td>
  98. </tr>
  99. </table>
  100. {foreach key=id item=field from=$fields}
  101. <table width="100%" border="0" cellspacing="5">
  102. <tr>
  103. {if $field.ftype=='link' || $field.ftype == 'text'}
  104. <td width="214" valign="top">
  105. <strong>{$field.title}:</strong>
  106. {if $field.ftype=='link'} <br/><span class="hint">{$LANG.TYPE_LINK}</span>{/if}
  107. {if $field.makelink} <br/><span class="hint">{$LANG.COMMA_SEPARATE}</span>{/if}
  108. </td>
  109. <td>
  110. <input style="width:250px" name="fdata[{$id}]" type="text" id="fdata" size="" value="{if $field.value}{$field.value|escape:'html'}{/if}"/>
  111. </td>
  112. {else}
  113. <td width="214" valign="top"><strong>{$field.title}:</strong></td>
  114. <td>
  115. {wysiwyg name="fdata[$id]" value=$field.value height=300 width='98%' toolbar='Basic'}
  116. </td>
  117. {/if}
  118. </tr>
  119. </table>
  120. {/foreach}
  121. {if $cfg.premod && !$is_admin}
  122. <p style="margin-top:15px;color:red">
  123. {$LANG.ITEM_PREMOD_NOTICE}
  124. </p>
  125. {/if}
  126. <p style="margin-top:15px">
  127. <input type="hidden" name="opt" value="{if $do=='add_item'}add{else}edit{/if}" />
  128. {if $do=='edit_item'}
  129. <input type="hidden" id="item_id" name="item_id" value="{$item.id}" />
  130. {/if}
  131. <input type="submit" name="submit" value="{$LANG.SAVE}" style="font-size:18px" />
  132. <input type="button" name="back" value="{$LANG.CANCEL}" style="font-size:18px" onClick="window.history.go(-1)" />
  133. </p>
  134. </form>
  135. </div>
  136.  
  137. </div>
#2 27 августа 2014 в 14:54
Что такое УК?
#3 27 августа 2014 в 14:58

Что такое УК?

Александр
Универсальный каталог hoho
#4 27 августа 2014 в 14:58


Что такое УК?

Александр

Это сокращенное название компонента в начале темы :)
#5 27 августа 2014 в 15:05
ясно пасиба за подсказку)) Ну я думаю надо в frontend.php в действии добавления поменять адрес перелинковки

там где идет строчка if ($do == 'submit_item'){
ниже будет строчка cmsCore::redirect('/catalog/item'.$item['id'].'.html');
вот вам надо поменять путь '/catalog/item'.$item['id'].'.html' на что-то типа '/users/admin'
#6 27 августа 2014 в 16:06
Спасибо, сейчас попробую.
#7 27 августа 2014 в 17:27


Спасибо, сейчас попробую.

anmar1972
Не могу додумкать, что нужно поставить:
так
$inCore->redirect('/users/'.$usr.user_link);
или так
$inCore->redirect('/users/'.$usr.user_id);
или так
$inCore->redirect('/users/'.$user_id);
#8 27 августа 2014 в 18:38
$inCore->redirect('/users/'.$usr.login);
#9 27 августа 2014 в 20:20
Саш, не работает, перекидывает на 404
Почти в самом низу, выделенное жирным, может ещё в каком то месте надо изменить...

  1. <?php
  2. /******************************************************************************/
  3. // //
  4. // InstantCMS v1.10 //
  5. // http://instantcms.ru/ //
  6. // //
  7. // written by InstantCMS Team, 2007-2012 //
  8. // produced by InstantSoft, (www.instantsoft.ru) //
  9. // //
  10. // LICENSED BY GNU/GPL v2 //
  11. // //
  12. /******************************************************************************/
  13.  
  14. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  15.  
  16. function isNew($item_id, $shownew, $newint){
  17. $inCore = cmsCore::getInstance();
  18. $inDB = cmsDatabase::getInstance();
  19. if ($shownew){
  20. $sql = "SELECT id FROM cms_uc_items WHERE id = $item_id AND pubdate >= DATE_SUB(NOW(), INTERVAL $newint)";
  21. $result = $inDB->query($sql) ;
  22. return $inDB->num_rows($result);
  23. } else { return 0; }
  24. }
  25.  
  26. function getAlphaList($cat_id){
  27. $inCore = cmsCore::getInstance();
  28. $inDB = cmsDatabase::getInstance();
  29. global $_LANG;
  30. $html = '';
  31. $sql = "SELECT UPPER(SUBSTRING(LTRIM( title ) , 1, 1)) AS first_letter, COUNT( id ) AS num
  32. FROM cms_uc_items
  33. WHERE category_id = '$cat_id' AND published = 1
  34. GROUP BY first_letter";
  35. $result = $inDB->query($sql) ;
  36. if ($inDB->num_rows($result)){
  37. $html .= '<div class="uc_alpha_list">';
  38. while($a = $inDB->fetch_assoc($result)){
  39. if(preg_match('/^([a-zA-Zа-яёіїєґА-ЯЁІЇЄҐ0-9]+)$/ui', $a['first_letter'])){
  40. $html .= '<a class="uc_alpha_link" href="/catalog/'.$cat_id.'/find-first/'.urlencode($a['first_letter']).'" title="'.$_LANG['ARTICLES'].': '.$a['num'].'">'.$a['first_letter'].'</a>';
  41. }
  42. }
  43. $html .= '</div>';
  44. }
  45. return $html;
  46. }
  47.  
  48. function ratingData($item_id){
  49. $inCore = cmsCore::getInstance();
  50. $inDB = cmsDatabase::getInstance();
  51. $sql = "SELECT *, IFNULL(AVG(points), 0) as rating, COUNT(id) as votes
  52. FROM cms_uc_ratings
  53. WHERE item_id = $item_id
  54. GROUP BY item_id";
  55. $result = $inDB->query($sql) ;
  56. if ($inDB->num_rows($result)){
  57. $data = $inDB->fetch_assoc($result);
  58. } else {
  59. $data['rating'] = 0;
  60. $data['votes'] = 0;
  61. }
  62. return $data;
  63. }
  64.  
  65. function buildRating($rating){
  66. $inCore = cmsCore::getInstance();
  67. $inDB = cmsDatabase::getInstance();
  68. global $_LANG;
  69. $rating = round($rating, 2);
  70. $html = '<a href="#" title="'.$_LANG['RATING'].': '.$rating.'">';
  71. for($r = 0; $r < 5; $r++){
  72. if (round($rating) > $r){
  73. $html .= '<img src="/images/ratings/starfull.gif" border="0" />';
  74. } else {
  75. $html .= '<img src="/images/ratings/starhalf.gif" border="0" />';
  76. }
  77. }
  78. $html .= '</a>';
  79. return $html;
  80. }
  81.  
  82. function alreadyVoted($item_id){
  83. $inCore = cmsCore::getInstance();
  84. $inDB = cmsDatabase::getInstance();
  85. $ip = $_SERVER['REMOTE_ADDR'];
  86. $sql = "SELECT points FROM cms_uc_ratings WHERE item_id = $item_id AND ip = '$ip' LIMIT 1";
  87. $result = $inDB->query($sql) ;
  88. if ($inDB->num_rows($result)){
  89. $data = $inDB->fetch_assoc($result);
  90. return (int)$data['points'];
  91. }
  92. return false;
  93. }
  94.  
  95. function ratingForm($ratingdata, $item_id){
  96. $inCore = cmsCore::getInstance();
  97. $inDB = cmsDatabase::getInstance();
  98. global $_LANG;
  99. $html = '';
  100. $html .= '<form name="rateform" action="" method="POST"><div class="uc_detailrating"><table><tr>' ."\n";
  101. $html .= '<td width="100">'."\n";
  102. $html .= '<strong>'.$_LANG['RATING'].':</strong> '.round($ratingdata['rating'], 2)."\n";
  103. $html .= '</td>'."\n";
  104. $html .= '<td width="100" valign="middle">'."\n";
  105. $html .= buildRating($ratingdata['rating'])."\n";
  106. $html .= '</td>'."\n";
  107. $html .= '<td width="65">'."\n";
  108. $html .= '<strong>'.$_LANG['VOTES'].':</strong> '."\n";
  109. $html .= '</td>'."\n";
  110. $html .= '<td width="40" valign="middle">'."\n";
  111. $html .= $ratingdata['votes']."\n";
  112. $html .= '</td>'."\n";
  113. $html .= '<td width="100">'."\n";
  114. $html .= '<strong>'.$_LANG['YOUR_VOTE'].':</strong> '."\n";
  115. $html .= '</td>'."\n";
  116. $html .= '<td width=""> '."\n";
  117. $myvote = alreadyVoted($item_id);
  118. if (!$myvote){
  119. $html .= '<input type="hidden" name="rating" value="1"/>'."\n";
  120. $html .= '<input type="hidden" name="item_id" value="'.$item_id.'"/>'."\n";
  121. $html .= '<select name="points" style="width:50px" onchange="document.rateform.submit();">'."\n";
  122. $html .= '<option value="-1"> -- </option>'."\n";
  123. for($p=1; $p<=5; $p++) { $html .= '<option value="'.$p.'">'.$p.'</option>'."\n"; }
  124. $html .= '</select>'."\n";
  125. } else {
  126. $html .= $myvote;
  127. }
  128. $html .= '</td>'."\n";
  129. $html .= '</tr></table></div></form>'."\n";
  130. return $html;
  131. }
  132.  
  133. function orderForm($orderby, $orderto, $shop=false){
  134. $inCore = cmsCore::getInstance();
  135. $inDB = cmsDatabase::getInstance();
  136. global $_LANG;
  137. $html = '';
  138. $html .= '<form action="'.$_SERVER['REQUEST_URI'].'" method="POST"><div class="catalog_sortform"><table cellspacing="2" cellpadding="2" >' ."\n";
  139. $html .= '<tr>' ."\n";
  140. $html .= '<td>'.$_LANG['ORDER_ARTICLES'].': </td>' ."\n";
  141. $html .= '<td valign="top"><select name="orderby" id="orderby">' ."\n";
  142. if($shop){
  143. $html .
#10 27 августа 2014 в 20:37
$user.login это что у вас, по моему нет такой переменной в данном файле.
#11 28 августа 2014 в 12:08


$user.login это что у вас, по моему нет такой переменной в данном файле.

Lora

$user — нет, а $usr должна быть
#12 28 августа 2014 в 12:34
Общим вот что вставь:

вместо: $inCore->redirect('/users/'.$usr.login);
вставь: $inCore->redirect('/users/'.$inUser->login);
должно работать

и да, переменных $user и $usr нет как оказалось, а подумал я что они есть, ибо автор поста упомянул вариант, которые "нужно поставить":
$inCore->redirect('/users/'.$usr.user_link);
$inCore->redirect('/users/'.$usr.user_id);

Отпишись заработало, или нет.
#13 28 августа 2014 в 13:06
Да, это то самое!
$inCore->redirect('/users/'.$inUser->login);

Спасибо!
#14 28 августа 2014 в 23:14


Да, это то самое!
$inCore->redirect('/users/'.$inUser->login);

Спасибо!

anmar1972

Всегда пожалуйста))
#15 29 августа 2014 в 09:02
Проблема решена.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.