X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> Проблемы с joomla
maksimvorum
maksimvorum
Topic Starter сообщение 3.2.2016, 14:52; Ответить: maksimvorum
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 1152
Регистрация: 14.3.2010
Из: Барнаул
Поблагодарили: 189 раз
Репутация:   41  


Здравствуйте, прошу помощи у опытных пользователей Joomla.
Создал сайт (доска объявлений) на Joomla! 2.5.19, используется компонент DJ-Classifieds (ver. 3.2), в котором создано почти 750 категорий и к каждой категории создан пункт меню.
При работе с сайтом (его наполнении), по мере создания всё большего количества пунктов меню, в модулях стали тормозить кнопки "Применить", "Сохранить", "Сохранить и закрыть" и "Сохранить и создать", кнопка "Закрыть" работала нормально. Такая же история была при заходе в шаблоны, всё остальное работало и работает.
Уже после примерно пятисотого созданного пункта меню вышеупомянутые кнопки начали срабатывать примерно через 1 минуту, когда раньше на их срабатывание уходило секунд 10. Я продолжал создавать пункты меню, уже не работая с модулями. И вот мне понадобилось отредактировать модуль, зайдя в него я увидел такую картину смотреть вложения.
[attachment=26170:Безымянный.png]
Логи ошибки:
Tue Feb 02 14:55:35 2016] [warn] [client 213.87.127.24] mod_fcgid: stderr: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 8589934591 bytes) /allix.ru/administrator/components/com_menus/helpers/
menus.php on line 184, referer: http://allix.ru/administrator/index.php?option=com_modules
Судя по всему не хватает оперативной памяти. сейчас у меня 512 но проблема не ушла.

Написал в техподдержку хостинга, где мне посоветовали сменить тарифный план, что в итоге я и сделал, но это ничего не изменило.
Обновлял версию Joomla, тоже никаких результатов.
Жду вашей помощи)


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
lostprophet
lostprophet
сообщение 3.2.2016, 15:39; Ответить: lostprophet
Сообщение #2


Топовый постер
*******

Группа: Super Moderator
Сообщений: 2567
Регистрация: 18.11.2008
Из: Ростов-на-Дону
Поблагодарили: 3172 раза
Репутация:   292  


maksimvorum, версия Joomla Вам не особо поможет.
Памяти реально побольше, да сервер пошустрее.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
maksimvorum
maksimvorum
Topic Starter сообщение 3.2.2016, 16:57; Ответить: maksimvorum
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 1152
Регистрация: 14.3.2010
Из: Барнаул
Поблагодарили: 189 раз
Репутация:   41  


lostprophet,
А на сколько шустрее? Я перешел на 512 и не хватает, на сколько нужно чтоб наверняка? Может посоветуете хостинг? 1 024 Мб подойдет как думаете?

Сообщение отредактировал maksimvorum - 3.2.2016, 17:10


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alexandr_js
Alexandr_js
сообщение 3.2.2016, 17:36; Ответить: Alexandr_js
Сообщение #4


Участник
***

Группа: User
Сообщений: 237
Регистрация: 21.7.2015
Поблагодарили: 43 раза
Репутация:   8  


Что-то жесть какая-то

8 гигов, чтобы запустить функцию? Не много ли?

Сообщение отредактировал Alexandr_js - 3.2.2016, 17:37


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
maksimvorum
maksimvorum
Topic Starter сообщение 3.2.2016, 17:40; Ответить: maksimvorum
Сообщение #5


Старожил
******

Группа: Active User
Сообщений: 1152
Регистрация: 14.3.2010
Из: Барнаул
Поблагодарили: 189 раз
Репутация:   41  


Alexandr_js,
По этому и интересуюсь, а с чего взяли что 8 гигов?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alexandr_js
Alexandr_js
сообщение 3.2.2016, 18:38; Ответить: Alexandr_js
Сообщение #6


Участник
***

Группа: User
Сообщений: 237
Регистрация: 21.7.2015
Поблагодарили: 43 раза
Репутация:   8  


Цитата(maksimvorum @ 3.2.2016, 17:40) *
tried to allocate 8589934591 bytes



--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
maksimvorum
maksimvorum
Topic Starter сообщение 3.2.2016, 18:43; Ответить: maksimvorum
Сообщение #7


Старожил
******

Группа: Active User
Сообщений: 1152
Регистрация: 14.3.2010
Из: Барнаул
Поблагодарили: 189 раз
Репутация:   41  


Alexandr_js,
А из за чего может возникать такое требование, я полностью заливал другой сайт с этой базой ничего не меняется, я так предполагаю что база данных что то требует, но не могу найти сути проблемы.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alexandr_js
Alexandr_js
сообщение 3.2.2016, 18:56; Ответить: Alexandr_js
Сообщение #8


Участник
***

Группа: User
Сообщений: 237
Регистрация: 21.7.2015
Поблагодарили: 43 раза
Репутация:   8  


maksimvorum, у вас все ошибке написано, надо смотреть строку

/allix.ru/administrator/components/com_menus/helpers/menus.php on line 184,


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
maksimvorum
maksimvorum
Topic Starter сообщение 3.2.2016, 19:08; Ответить: maksimvorum
Сообщение #9


Старожил
******

Группа: Active User
Сообщений: 1152
Регистрация: 14.3.2010
Из: Барнаул
Поблагодарили: 189 раз
Репутация:   41  


Alexandr_js
<?php
/**
* @copyright Copyright © 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

// No direct access
defined('_JEXEC') or die;

/**
* Menus component helper.
*
* @package Joomla.Administrator
* @subpackage com_menus
* @since 1.6
*/
class MenusHelper
{
/**
* Defines the valid request variables for the reverse lookup.
*/
protected static $_filter = array('option', 'view', 'layout');

/**
* Configure the Linkbar.
*
* @param string The name of the active view.
*/
public static function addSubmenu($vName)
{
JSubMenuHelper::addEntry(
JText::_('COM_MENUS_SUBMENU_MENUS'),
'index.php?option=com_menus&view=menus',
$vName == 'menus'
);
JSubMenuHelper::addEntry(
JText::_('COM_MENUS_SUBMENU_ITEMS'),
'index.php?option=com_menus&view=items',
$vName == 'items'
);
}

/**
* Gets a list of the actions that can be performed.
*
* @param int The menu ID.
*
* @return JObject
* @since 1.6
*/
public static function getActions($parentId = 0)
{
$user = JFactory::getUser();
$result = new JObject;

if (empty($parentId)) {
$assetName = 'com_menus';
} else {
$assetName = 'com_menus.item.'.(int) $parentId;
}

$actions = JAccess::getActions('com_menus');

foreach ($actions as $action) {
$result->set($action->name, $user->authorise($action->name, $assetName));
}

return $result;
}

/**
* Gets a standard form of a link for lookups.
*
* @param mixed A link string or array of request variables.
*
* @return mixed A link in standard option-view-layout form, or false if the supplied response is invalid.
*/
public static function getLinkKey($request)
{
if (empty($request)) {
return false;
}

// Check if the link is in the form of index.php?...
if (is_string($request))
{
$args = array();
if (strpos($request, 'index.php') === 0) {
parse_str(parse_url(htmlspecialchars_decode($request), PHP_URL_QUERY), $args);
}
else {
parse_str($request, $args);
}
$request = $args;
}

// Only take the option, view and layout parts.
foreach ($request as $name => $value)
{
if ((!in_array($name, self::$_filter)) && (!($name == 'task' && !array_key_exists('view', $request))))
{
// Remove the variables we want to ignore.
unset($request[$name]);
}
}

ksort($request);

return 'index.php?'.http_build_query($request, '', '&');
}

/**
* Get the menu list for create a menu module
*
* @return array The menu array list
* @since 1.6
*/
public static function getMenuTypes()
{
$db = JFactory::getDbo();
$db->setQuery('SELECT a.menutype FROM #__menu_types AS a');
return $db->loadColumn();
}

/**
* Get a list of menu links for one or all menus.
*
* @param string An option menu to filter the list on, otherwise all menu links are returned as a grouped array.
* @param int An optional parent ID to pivot results around.
* @param int An optional mode. If parent ID is set and mode=2, the parent and children are excluded from the list.
* @param array An optional array of states
*/
public static function getMenuLinks($menuType = null, $parentId = 0, $mode = 0, $published=array(), $languages=array())
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('a.id AS value, a.title AS text, a.level, a.menutype, a.type, a.template_style_id, a.checked_out');
$query->from('#__menu AS a');
$query->join('LEFT', $db->quoteName('#__menu').' AS b ON a.lft > b.lft AND a.rgt < b.rgt');

// Filter by the type
if ($menuType) {
$query->where('(a.menutype = '.$db->quote($menuType).' OR a.parent_id = 0)');
}

if ($parentId) {
if ($mode == 2) {
// Prevent the parent and children from showing.
$query->join('LEFT', '#__menu AS p ON p.id = '.(int) $parentId);
$query->where('(a.lft <= p.lft OR a.rgt >= p.rgt)');
}
}

if (!empty($languages)) {
if (is_array($languages)) {
$languages = '(' . implode(',', array_map(array($db, 'quote'), $languages)) . ')';
}
$query->where('a.language IN ' . $languages);
}

if (!empty($published)) {
if (is_array($published)) $published = '(' . implode(',', $published) .')';
$query->where('a.published IN ' . $published);
}

$query->where('a.published != -2');
$query->group('a.id, a.title, a.level, a.menutype, a.type, a.template_style_id, a.checked_out, a.lft');
$query->order('a.lft ASC');

// Get the options.
$db->setQuery($query);

$links = $db->loadObjectList();

// Check for a database error.
if ($error = $db->getErrorMsg()) {
JError::raiseWarning(500, $error);
return false;
}

// Pad the option text with spaces using depth level as a multiplier.
foreach ($links as &$link) {
$link->text = str_repeat('- ', $link->level).$link->text;
}

if (empty($menuType)) {
// If the menutype is empty, group the items by menutype.
$query->clear();
$query->select('*');
$query->from('#__menu_types');
$query->where('menutype <> '.$db->quote(''));
$query->order('title, menutype');
$db->setQuery($query);

$menuTypes = $db->loadObjectList();

// Check for a database error.
if ($error = $db->getErrorMsg()) {
JError::raiseWarning(500, $error);
return false;
}

// Create a reverse lookup and aggregate the links.
$rlu = array();
foreach ($menuTypes as &$type) {
$rlu[$type->menutype] = &$type;
$type->links = array();
}

// Loop through the list of menu links.
foreach ($links as &$link) {
if (isset($rlu[$link->menutype])) {
$rlu[$link->menutype]->links[] = &$link;

// Cleanup garbage.
unset($link->menutype);
}
}

return $menuTypes;
} else {
return $links;
}
}
static public function getAssociations($pk)
{
$associations = array();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->from('#__menu as m');
$query->innerJoin('#__associations as a ON a.id=m.id AND a.context='.$db->quote('com_menus.item'));
$query->innerJoin('#__associations as a2 ON a.key=a2.key');
$query->innerJoin('#__menu as m2 ON a2.id=m2.id');
$query->where('m.id='.(int)$pk);
$query->select('m2.language, m2.id');
$db->setQuery($query);
$menuitems = $db->loadObjectList('language');
// Check for a database error.
if ($error = $db->getErrorMsg()) {
JError::raiseWarning(500, $error);
return false;
}
foreach ($menuitems as $tag=>$item) {
$associations[$tag] = $item->id;
}
return $associations;
}
}


я его вообще менял с другой joomla изменений нет.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alexandr_js
Alexandr_js
сообщение 3.2.2016, 19:20; Ответить: Alexandr_js
Сообщение #10


Участник
***

Группа: User
Сообщений: 237
Регистрация: 21.7.2015
Поблагодарили: 43 раза
Репутация:   8  


maksimvorum, еще бы посмотреть на размер вот это пункта $links = $db->loadObjectList();

// Get the options.
$db->setQuery($query);

$links = $db->loadObjectList();

Сколько уровней в меню?
и какой кусок кода на 184 строке?

Если на 184 строк вот этот кусок кода
Код
foreach ($links as &$link) {
$link->text = str_repeat('- ', $link->level).$link->text;
}

то можно попробовать заменить на
Код
foreach ($links as &$link) {
$link->text = '('.$link->level.') - '.$link->text;
}


Сообщение отредактировал Alexandr_js - 3.2.2016, 19:28


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
143 contex1 65205 Сегодня, 9:07
автор: contex1
Открытая тема (нет новых ответов) Не получается зайти в Joomla от имени админа
8 Bel_Ami 468 Вчера, 0:56
автор: anchous
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1171 13.12.2017, 23:36
автор: Nell
Горячая тема (нет новых ответов) Вёрстка, натяжка на WordPress, Joomla, качественно, доступно
53 WhiteIce 23819 12.12.2017, 19:41
автор: WhiteIce
Горячая тема (нет новых ответов) Разработка сайтов Joomla Wordpress Opencart
Разработка, верстка, оптимизация веб сайтов.
48 WoWeb 7400 12.12.2017, 13:37
автор: serg5777


 



RSS Текстовая версия Сейчас: 17.12.2017, 14:26
Дизайн