Вывод кнопки, помогите, туплю))))

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 15 апреля 2019 в 23:30
Всем здравия, помогите пожалуйста...

Мне нужно вывести кнопку во вкладке "редактировать профиль" вот тут:


Методом тыка определил, что содержание данной страницы находится тут: ../public_html/system/controllers/users/actions/profile_edit.tpl.php
Это файл имеет код:
  1.  
  2.  
  3.  
  4.  
  5. <?php
  6.  
  7. class actionUsersProfileEdit extends cmsAction {
  8.  
  9. public $lock_explicit_call = true;
  10.  
  11. public function run($profile, $do = false, $param = false) {
  12.  
  13. if (!$this->cms_user->is_logged) { cmsCore::error404(); }
  14.  
  15. // если нужно, передаем управление другому экшену
  16. if ($do){
  17. $this->runExternalAction('profile_edit_'.$do, array($profile) + array_slice($this->params, 2, null, true));
  18. return;
  19. }
  20.  
  21. $back_url = $this->request->get('back', '');
  22.  
  23. // проверяем наличие доступа
  24. if (!$this->is_own_profile && !$this->cms_user->is_admin) { cmsCore::error404(); }
  25.  
  26. // Получаем поля
  27. $content_model = cmsCore::getModel('content');
  28. $content_model->setTablePrefix('');
  29. $content_model->orderBy('ordering');
  30. $fields = $content_model->getContentFields('cms_users', $profile['id']);
  31.  
  32. // Строим форму
  33. $form = new cmsForm();
  34.  
  35. // Разбиваем поля по группам
  36. $fieldsets = cmsForm::mapFieldsToFieldsets($fields, function($field, $user) use ($profile){
  37.  
  38. // проверяем что группа пользователя имеет доступ к редактированию этого поля
  39. if ($field['groups_edit'] && !$user->isInGroups($field['groups_edit'])) {
  40. // если группа пользователя не имеет доступ к редактированию этого поля,
  41. // проверяем на доступ к нему для авторов
  42. if (!empty($profile['id']) && !empty($field['options']['author_access'])){
  43. if (!in_array('is_edit', $field['options']['author_access'])){ return false; }
  44. if ($profile['id'] == $user->id){ return true; }
  45. }
  46. return false;
  47. }
  48. return true;
  49.  
  50. });
  51.  
  52. // Добавляем поля в форму
  53. foreach($fieldsets as $fieldset){
  54.  
  55. $fid = $fieldset['title'] ? md5($fieldset['title']) : null;
  56.  
  57. $fieldset_id = $form->addFieldset($fieldset['title'], $fid);
  58.  
  59. foreach($fieldset['fields'] as $field){
  60.  
  61. // добавляем поле в форму
  62. $form->addField($fieldset_id, $field['handler']);
  63.  
  64. }
  65.  
  66. }
  67.  
  68.  
  69.  
  70.  
  71. // Форма отправлена?
  72. $is_submitted = $this->request->has('submit');
  73.  
  74. if ($is_submitted){
  75.  
  76. // Парсим форму и получаем поля записи
  77. $new = $form->parse($this->request, $is_submitted, $profile);
  78. $old = $profile;
  79. $profile = array_merge($profile, $new);
  80.  
  81. // Проверям правильность заполнения
  82. $errors = $form->validate($this, $profile);
  83.  
  84. if (!$errors){
  85. $is_allowed = cmsEventsManager::hookAll('user_profile_update', $profile, true);
  86. if (is_array($is_allowed)) {
  87. $errors = array();
  88. foreach ($is_allowed as $error_list) {
  89. if(is_array($error_list) && $error_list){
  90. $errors = array_merge($error_list);
  91. }
  92. }
  93. }
  94. }
  95.  
  96. if (!$errors){
  97.  
  98. // Обновляем профиль и редиректим на его просмотр
  99. $this->model->updateUser($profile['id'], $profile);
  100.  
  101. // Отдельно обновляем часовой пояс в сессии
  102. cmsUser::sessionSet('user:time_zone', $profile['time_zone']);
  103.  
  104. // Постим уведомление о смене аватара в ленту
  105. if (!$this->model->isAvatarsEqual($new['avatar'], $old['avatar'])){
  106. $activity_controller = cmsCore::getController('activity');
  107. $activity_controller->deleteEntry($this->name, 'avatar', $profile['id']);
  108. if (!empty($new['avatar'])){
  109. $activity_controller->addEntry($this->name, 'avatar', array(
  110. 'user_id' => $profile['id'],
  111. 'subject_title' => $profile['nickname'],
  112. 'subject_id' => $profile['id'],
  113. 'subject_url' => href_to_rel('users', $profile['id']),
  114. 'is_private' => 0,
  115. 'group_id' => null,
  116. 'images' => array(
  117. 'url' => href_to_rel('users', $profile['id']),
  118. 'src' => html_image_src($new['avatar'], $fields['avatar']['options']['size_full'])
  119. )
  120. ),
  121. 'images_count' => 1
  122. ));
  123. }
  124. }
  125.  
  126. $content = cmsCore::getController('content', $this->request);
  127.  
  128. $parents = $content->model->getContentTypeParents(null, $this->name);
  129.  
  130. if($parents){
  131. $content->bindItemToParents(array('id' => null, 'name' => $this->name, 'controller' => $this->name), $profile, $parents);
  132. }
  133.  
  134. cmsUser::addSessionMessage(LANG_SUCCESS_MSG, 'success');
  135.  
  136. if ($back_url){
  137. $this->redirect($back_url);
  138. } else {
  139. $this->redirectTo('users', $profile['id']);
  140. }
  141.  
  142. }
  143.  
  144. if ($errors){
  145. cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
  146. }
  147.  
  148. }
  149.  
  150. $allow_delete_profile = (cmsUser::isAllowed('users', 'delete', 'any') ||
  151. (cmsUser::isAllowed('users', 'delete', 'my') && $this->is_own_profile));
  152.  
  153. return $this->cms_template
#2 15 апреля 2019 в 23:42

../public_html/system/controllers/users/actions/profile_edit.tpl.php

@stich
Попробуйте ваш код лучше здесь вставить temolates/шаблон/controllers/users/profile_edit.tpl.php
#3 15 апреля 2019 в 23:49


../public_html/system/controllers/users/actions/profile_edit.tpl.php

@stich
Попробуйте ваш код лучше здесь вставить temolates/шаблон/controllers/users/profile_edit.tpl.php

Killer's dream
И в этом файле я тоже пытался колдовать)))
В нем получается вставить кнопку только в самый низ страницы, к кнопкам "сохранить" "отменить" "удалить"
выходит так, что она находится за телом страницы, если я ее поднимаю вверх средствами СSS, то она просто пропадает под всей остальной информацией на странице…
#4 15 апреля 2019 в 23:58

И в этом файле я тоже пытался колдовать)))

@stich
Как то не правильно Вы колдуете)) надо именно в нём а не который указывали вы. Сейчас попробую у себя и возможно что то подскажу)))
#5 16 апреля 2019 в 00:05
Я вот сейчас попробовал у себя:
  1.  
  2. $this->renderChild('profile_edit_header', array('profile'=>$profile));
  3. ?> Кнопка <?php
  4. $append_html = '';
  5.  
то есть после $this->renderChild('profile_edit_header', array('profile'=>$profile)); формирования назовем её шапки
вставил ?> Кнопка <?php назовем это типа кнопка

и у меня всё сработало. Добился того чего вы хотите. Дальше работа с css. Но насколько это правильно мне не известно.
#6 16 апреля 2019 в 00:17


И в этом файле я тоже пытался колдовать)))

@stich
Как то не правильно Вы колдуете)) надо именно в нём а не который указывали вы.

Killer's dream

Так у меня уже получалось)))))
Видимо я не правильно работаю с СSS, хотя и сам пробовал и через инстайлер…
щас покажу:


через инстайлер получается двигать только влево, больше ни куда не шевелится))
а через css двигается вместе с телом страницы....
блин, может позиционирование элемента просто нужно указать? только какое? static?
#7 16 апреля 2019 в 00:23
победил!!!
Спасибо за советы))))))
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.