Gatsby will throw a build error related to the sharp library when you try to launch the development server. This happens on my homebrew installed node.
gyp info spawn makegyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]CC(target) Release/obj.target/nothing/../node-addon-api/nothing.oLIBTOOL-STATIC Release/nothing.awarning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: Release/nothing.a the table of contents is empty (no object file members in the library define global symbols)TOUCH Release/obj.target/libvips-cpp.stampCXX(target) Release/obj.target/sharp/src/common.o../src/common.cc:24:10: fatal error: 'vips/vips8' file not found#include <vips/vips8>^~~~~~~~~~~~1 error generated.make: *** [Release/obj.target/sharp/src/common.o] Error 1gyp ERR! build errorgyp ERR! stack Error: `make` failed with exit code: 2
To fix this all you need to do is to install libvibs via homebrew:
brew install libvips
I initially intended to make a post about tasks and jobs as part 7 of this series. After working on a number of projects in the months that passed I realized that I forgot to discuss the most common task in SE4 (it’s called SE PHP now but I’ll still refer to it as SE4 if you don’t mind) customization which is customizing forms and creating forms.
This post is intended to be some sort of quick reference for SE4 developers. I’ll start off with a few questions and answers. Feel free to leave a question in the comments and I’ll try my best to give you an answer.
You may use the view helpers viewer and subject. In the view script they are invoked like so: $this->viewer() and $this->subject() respectively. Note that the viewer view helper will return and User_Model_User object even when there isn’t any user logged in. To check if a user is currently logged in check the value of $this->viewer()->getIdentity(). This will return…
Widget creation is one of the most common tasks in SE4 module development. Widgets are called “blocks” in the admin panel which in my opinion is a better term and for the rest of this post I will use blocks and widgets interchangeably. Widgets can contain forms, lists, menus and other widgets.
Widget codes are contained in a modules “widgets” path so a modules widgets path relative to the SE4 install directory is: application/modules/<Modulename>/widgets. Widget names are prefixed with the modules name (following the rules discussed in earlier posts) and a period (ex. core.html-block and core.comment). Widgets can also reside…
To help our users find their way around we need menus. Most of the group of links you find in SE4 pages are menus wrapped within a widget. To be able to create our own menus or add menu items to existing menus we need to take a look at two tables engine4_core_menus and engine4_core_menuitems.
The contents of engine4_core_menus are the editable menus. That is, menus listed under this table can me manipulated by the admin user in /admin/menus. The name field is the prefix used in the name of the menuitems in engine4_core_menuitems. This is how you will refer…
After a long hiatus it’s back. Next up: permissions and privacy
The permissions/privacy mechanism of SE4 is provided by the core module Authorization. The stuff that makes it all go are two tables, engine4_authorization_permissions and engine4_authorization_allow. The permissions table has information on which/who can do so and so in a general context. The allow table has information on which can do so and so on a particular resource/SE4 item. …
If you are running SE 4.2.6 and is encountering an error downloading the files you uploaded via admin’s File & Media Manager you are reading the right post.
Users would rarely need to download the files in the the File & Media Manager but if you need to download the files using this interface there is a show stopping error that will prevent you from doing so.
If our cars are going to make rounds in our community pages must be created where users can browse, view, create and edit cars. For this we must define routes, controllers and views.
Social Engine’s routing framework uses Zend Framework’s routing component. It’s advisable to review the doc if you are not familiar with it. Routes are defined in the manifest under the key “routes”.
SE4 defines two default routes a route named “default” and a route named “admin_default”. The default route is the same as the default route of ZF. The default route is /:module/:controller/:action/*. The * means any…
The stuff that makes SocialEngine4 go are items. Items are the things that go around the community. Photos, albums, groups, videos even users are items in the context of SE4. Items normally have title, description, body or content, slug, owners, parents etc. Items can be shared, commented on and liked.
In our module we have cars. Cars are owned by users. They have a profile page, a profile photo, can be liked, shared, commented on, can have a number of photos and can have videos.
Please note the following regarding items in SE4:
In this multi-part post, I will teach you how to create a social engine module. I’ll try touch every bells and whistles of SE4 module development. Since I’m lacking ideas for introductory statements let’s get started.
We will be creating a car module. The module will enable users to create cars. Cars will have a profile page, can be liked, can be commented on, has a profile photo, can have albums if the album module is available and can have videos if the video module is available. The module will also provide a number of car related widgets.