Как Вы отлаживаете проблемы/изучать SugarCRM, как SugarCRM работает?

Что должно произойти, так это то, что «именованные элементы» добавляются как кажущиеся свойства объекта document. Это действительно плохая идея, так как позволяет именам элементов сталкиваться с реальными свойствами document.

IE затруднил ситуацию, добавив именованные элементы в качестве свойств объекта window. Это вдвойне плохо, потому что теперь вам нужно избегать именования ваших элементов после того, как захочет использовать какой-либо из объектов document или window, которые вы (или любой другой библиотечный код в своем проекте) захотите использовать.

Это также означает, что эти элементы видны как глобальные переменные. К счастью, в этом случае любые реальные глобальные объявления var или function в вашем коду затушевывают их, поэтому вам не нужно так беспокоиться об именах здесь, но если вы попытаетесь выполнить присвоение глобальной переменной с конфликтом имя и вы забудете объявить его var, вы получите сообщение об ошибке в IE, поскольку оно пытается присвоить значение самому элементу.

Обычно считается, что неправильная практика пропускает var, так как а также полагаться на названные элементы, которые видны на window или в виде глобальных. Придерживайтесь document.getElementById, который более широко поддерживается и менее неоднозначен. Вы можете написать тривиальную функцию обертки с более коротким именем, если вам не нравится ввод текста. В любом случае, нет смысла использовать кеш-поиск с id-элементом, поскольку браузеры обычно оптимизируют вызов getElementById, чтобы использовать быстрый поиск; все, что вы получаете, это проблемы, когда элементы меняются id или добавляются / удаляются из документа.

Opera скопировала IE, затем присоединился WebKit, и теперь обе ранее нестандартная практика размещения именованных элементов в document, и ранее применявшаяся только для IE практика помещать их в window, является стандартизированной HTML5, подход которой заключается в том, чтобы документировать и стандартизировать каждую ужасную практику, причиненную на нас авторами браузеров, делая их частью сети навсегда. Таким образом, Firefox 4 также будет поддерживать это.

Что такое «названные элементы»? Все, что имеет id, и все, что используется name для целей идентификации, то есть формы, изображения, привязки и несколько других, но не другие несвязанные экземпляры атрибута name, например, имена в полях ввода формы, имена параметров в или тип метаданных в . «Идентификация» name s - это те, которые следует избегать в пользу id.

15
задан Toby Allen 28 July 2009 в 19:30
поделиться

6 ответов

Хотя это не идеальный ответ на мой вопрос, эта статья:

http://developers.sugarcrm.com/wordpress/2008/09/26/where-is-the-code-for-x/

действительно помогал немного. Также, когда я смотрел далее через официальные Сахарные документы, я нашел, что Руководство разработчика действительно содержит некоторое объяснение того, как Сахар работает (хотя, очевидно, это столь не фокусируется о том, как Сахар работает так, как это фокусируется о том, как заставить Сахар сделать новые вещи).

Hope, которая помогает любому другому растущему Сахару devs там.

4
ответ дан 1 December 2019 в 01:46
поделиться

Я работал с SugarCRM пара несколько лет назад, и хотя я любил то, что я видел на поверхности, я закончил тем, что отклонил ее для нашего проекта из-за того, что Вы испытываете теперь. Внутренности продукта горестно underdocumented. Я предположил запись набора гладких модулей для продукта, но ресурсы просто не существуют. Вы проведете все свое время, роя через код, выливаясь по сообщениям форума, и пытаясь найти примеры того, что Вы пытаетесь выполнить. Не кажется, что вещи стали намного лучше.

, Учитывая, что Ваш опыт PHP является уровнем меньше-гуру, и Вы, несомненно, заняты большим количеством других задач и крайние сроки, я думаю, что необходимо, возможно, пересмотреть этот переход, если не слишком поздно, по крайней мере, пока Вы не получаете лучший уровень комфорта с Сахаром. Если Вы вынуждены переместиться в Сахар из-за истекающего контракта с Salesforce, я думаю, что Вы могли бы быть в для некоторой серьезной изжоги!

14
ответ дан 1 December 2019 в 01:46
поделиться

$this ссылка на текущий объект.

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
0
ответ дан 1 December 2019 в 01:46
поделиться

These code are coming from Smarty lib, not coming from SugarCRM directly.

Maybe this chm doc will be a little helpful, http://code.google.com/p/sugardoc/downloads/list.

2
ответ дан 1 December 2019 в 01:46
поделиться

Вы также можете попробовать установить xdebug (расширение PHP) и выполнить код с совместимой IDE, например как затмение или Комодо.

URL сообщает вам, к какому каталогу модуля осуществляется доступ и к какому действию / представлению. Под большинством модулей есть папка "views". Если его там нет, он либо использует представление MVC по умолчанию в папке include в сочетании с макетом метаданных, либо использует классическую архитектуру представления: index.php (listview), DetailView.php и EditView.php и шаблоны.

За последние пару лет многое изменилось к лучшему, поэтому я не уверен, что первый ответ (Nack) по-прежнему актуален. Это все еще довольно грубо, но новый фреймворк Sugar - лучший друг PHP-хакера (действительно легко переопределить что-то удобным для обновления способом). Это отлично подходит для компаний, у которых уже есть хакеры PHP и которым нужно лишь несколько улучшений. И найти доступных PHP-подрядчиков для помощи - разве нет? так сложно (отказ от ответственности: я один). Я думаю, что это отличный инструмент, если вы работаете с открытым исходным кодом, вам просто нужна базовая CRM и у вас меньше 100 пользователей.

2
ответ дан 1 December 2019 в 01:46
поделиться

Я бы посоветовал убедиться, что это действительно ошибка кода, а не просто ошибка конфигурации. Вы добавляете поле через Админ> Студия> Контакты> Поля или через SOAP API?

Вы используете последнюю версию Sugar?

Я действительно согласен с тем, что проект ужасно недокументирован и не содержит руководств и руководств. Примеры.

Я сам испытываю боль из-за устаревшей / отсутствующей документации. Удачи!

1
ответ дан 1 December 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: